diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/renderer_host/mock_render_process_host.cc | 14 | ||||
-rw-r--r-- | chrome/browser/renderer_host/mock_render_process_host.h | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/chrome/browser/renderer_host/mock_render_process_host.cc b/chrome/browser/renderer_host/mock_render_process_host.cc index dc33bc1..f6aec46 100644 --- a/chrome/browser/renderer_host/mock_render_process_host.cc +++ b/chrome/browser/renderer_host/mock_render_process_host.cc @@ -5,10 +5,12 @@ #include "chrome/browser/renderer_host/mock_render_process_host.h" MockRenderProcessHost::MockRenderProcessHost(Profile* profile) - : RenderProcessHost(profile) { + : RenderProcessHost(profile), + transport_dib_(NULL) { } MockRenderProcessHost::~MockRenderProcessHost() { + delete transport_dib_; } bool MockRenderProcessHost::Init() { @@ -58,15 +60,19 @@ bool MockRenderProcessHost::Send(IPC::Message* msg) { } TransportDIB* MockRenderProcessHost::GetTransportDIB(TransportDIB::Id dib_id) { + delete transport_dib_; + #if defined(OS_WIN) - return TransportDIB::Map(dib_id.handle); + transport_dib_ = TransportDIB::Map(dib_id.handle); #elif defined(OS_MACOSX) // On Mac, TransportDIBs are always created in the browser, so we cannot map // one from a dib_id. - return TransportDIB::Create(100 * 100 * 4, 0); + transport_dib_ = TransportDIB::Create(100 * 100 * 4, 0); #elif defined(OS_LINUX) - return TransportDIB::Map(dib_id); + transport_dib_ = TransportDIB::Map(dib_id); #endif + + return transport_dib_; } void MockRenderProcessHost::OnMessageReceived(const IPC::Message& msg) { diff --git a/chrome/browser/renderer_host/mock_render_process_host.h b/chrome/browser/renderer_host/mock_render_process_host.h index bfe49ee..9b63653 100644 --- a/chrome/browser/renderer_host/mock_render_process_host.h +++ b/chrome/browser/renderer_host/mock_render_process_host.h @@ -9,6 +9,8 @@ #include "chrome/browser/renderer_host/render_process_host.h" #include "chrome/common/ipc_test_sink.h" +class TransportDIB; + // A mock render process host that has no corresponding renderer process. The // process() refers to the current process, and all IPC messages are sent into // the message sink for inspection by tests. @@ -47,6 +49,7 @@ class MockRenderProcessHost : public RenderProcessHost { private: // Stores IPC messages that would have been sent to the renderer. IPC::TestSink sink_; + TransportDIB* transport_dib_; DISALLOW_COPY_AND_ASSIGN(MockRenderProcessHost); }; |