Index: content/public/test/test_renderer_host.cc |
diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc |
index 6817a5a0ac6e40a6008973d12b39e46571055ffb..563ab9307d47bea720251b2e50a1e48277acc74f 100644 |
--- a/content/public/test/test_renderer_host.cc |
+++ b/content/public/test/test_renderer_host.cc |
@@ -129,9 +129,39 @@ bool RenderViewHostTester::HasTouchEventHandler(RenderViewHost* rvh) { |
RenderViewHostTestEnabler::RenderViewHostTestEnabler() |
: rph_factory_(new MockRenderProcessHostFactory()), |
rvh_factory_(new TestRenderViewHostFactory(rph_factory_.get())), |
- rfh_factory_(new TestRenderFrameHostFactory()) {} |
+ rfh_factory_(new TestRenderFrameHostFactory()) { |
+#if !defined(OS_ANDROID) |
+ ImageTransportFactory::InitializeForUnitTests( |
+ base::WrapUnique(new NoTransportImageTransportFactory)); |
+#else |
+ gpu_channel_factory_ = base::MakeUnique<MockGpuChannelEstablishFactory>(); |
+ ContextProviderFactoryImpl::Initialize(gpu_channel_factory_.get()); |
+ ui::ContextProviderFactory::SetInstance( |
+ ContextProviderFactoryImpl::GetInstance()); |
+ if (!screen_) |
+ screen_.reset(ui::CreateDummyScreenAndroid()); |
+ display::Screen::SetScreenInstance(screen_.get()); |
+#endif |
+#if defined(OS_MACOSX) |
+ if (base::ThreadTaskRunnerHandle::IsSet()) |
+ ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get()); |
+#endif // OS_MACOSX |
+} |
RenderViewHostTestEnabler::~RenderViewHostTestEnabler() { |
+#if defined(OS_MACOSX) |
+ ui::WindowResizeHelperMac::Get()->ShutdownForTests(); |
+#endif // OS_MACOSX |
+#if !defined(OS_ANDROID) |
+ // RenderWidgetHostView holds on to a reference to SurfaceManager, so it |
+ // must be shut down before the ImageTransportFactory. |
+ ImageTransportFactory::Terminate(); |
+#else |
+ display::Screen::SetScreenInstance(nullptr); |
+ ui::ContextProviderFactory::SetInstance(nullptr); |
+ ContextProviderFactoryImpl::Terminate(); |
+ gpu_channel_factory_.reset(); |
+#endif |
} |
@@ -234,21 +264,13 @@ void RenderViewHostTestHarness::SetUp() { |
ui::MaterialDesignController::Initialize(); |
thread_bundle_.reset(new TestBrowserThreadBundle(thread_bundle_options_)); |
+ rvh_test_enabler_.reset(new RenderViewHostTestEnabler); |
+ if (factory_) |
+ rvh_test_enabler_->rvh_factory_->set_render_process_host_factory(factory_); |
+ |
#if defined(OS_WIN) |
ole_initializer_.reset(new ui::ScopedOleInitializer()); |
#endif |
-#if !defined(OS_ANDROID) |
- ImageTransportFactory::InitializeForUnitTests( |
- base::WrapUnique(new NoTransportImageTransportFactory)); |
-#else |
- gpu_channel_factory_ = base::MakeUnique<MockGpuChannelEstablishFactory>(); |
- ContextProviderFactoryImpl::Initialize(gpu_channel_factory_.get()); |
- ui::ContextProviderFactory::SetInstance( |
- ContextProviderFactoryImpl::GetInstance()); |
- if (!screen_) |
- screen_.reset(ui::CreateDummyScreenAndroid()); |
- display::Screen::SetScreenInstance(screen_.get()); |
-#endif |
#if defined(USE_AURA) |
ui::ContextFactory* context_factory = |
ImageTransportFactory::GetInstance()->GetContextFactory(); |
@@ -268,10 +290,6 @@ void RenderViewHostTestHarness::SetUp() { |
if (IsBrowserSideNavigationEnabled()) |
BrowserSideNavigationSetUp(); |
- |
-#if defined(OS_MACOSX) |
- ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get()); |
-#endif // OS_MACOSX |
} |
void RenderViewHostTestHarness::TearDown() { |
@@ -287,17 +305,15 @@ void RenderViewHostTestHarness::TearDown() { |
// before we destroy the browser context. |
base::RunLoop().RunUntilIdle(); |
-#if defined(OS_MACOSX) |
- ui::WindowResizeHelperMac::Get()->ShutdownForTests(); |
-#endif // OS_MACOSX |
- |
#if defined(OS_WIN) |
ole_initializer_.reset(); |
#endif |
// Delete any RenderProcessHosts before the BrowserContext goes away. |
- if (rvh_test_enabler_.rph_factory_) |
- rvh_test_enabler_.rph_factory_.reset(); |
+ if (rvh_test_enabler_->rph_factory_) |
+ rvh_test_enabler_->rph_factory_.reset(); |
+ |
+ rvh_test_enabler_.reset(); |
// Release the browser context by posting itself on the end of the task |
// queue. This is preferable to immediate deletion because it will behave |
@@ -307,17 +323,6 @@ void RenderViewHostTestHarness::TearDown() { |
FROM_HERE, |
browser_context_.release()); |
thread_bundle_.reset(); |
- |
-#if !defined(OS_ANDROID) |
- // RenderWidgetHostView holds on to a reference to SurfaceManager, so it |
- // must be shut down before the ImageTransportFactory. |
- ImageTransportFactory::Terminate(); |
-#else |
- display::Screen::SetScreenInstance(nullptr); |
- ui::ContextProviderFactory::SetInstance(nullptr); |
- ContextProviderFactoryImpl::Terminate(); |
- gpu_channel_factory_.reset(); |
-#endif |
} |
BrowserContext* RenderViewHostTestHarness::CreateBrowserContext() { |
@@ -326,7 +331,10 @@ BrowserContext* RenderViewHostTestHarness::CreateBrowserContext() { |
void RenderViewHostTestHarness::SetRenderProcessHostFactory( |
RenderProcessHostFactory* factory) { |
- rvh_test_enabler_.rvh_factory_->set_render_process_host_factory(factory); |
+ if (rvh_test_enabler_) |
+ rvh_test_enabler_->rvh_factory_->set_render_process_host_factory(factory); |
+ else |
+ factory_ = factory; |
} |
} // namespace content |