Commit 670f41ee authored by Karandeep Bhatia's avatar Karandeep Bhatia Committed by Commit Bot

Extensions: Fix flaky RendererStartupHelperTest.ExtensionInIncognitoRenderer.

RendererStartupHelperTest.ExtensionInIncognitoRenderer was crashing on debug
builds occasionally because the incognito context it was using wasn't marked
live. This adds code to ExtensionsTest to initialize the incognito context. This
also necessiated modifying MockExtensionSystemFactory so that a separate
MockExtensionSystem was created for incognito (like in non-testing scenario).

BUG=795888

Change-Id: I2b3d7e4261862e036686648d064867cb154b2694
Reviewed-on: https://chromium-review.googlesource.com/882495Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531749}
parent f9fdb14a
...@@ -70,8 +70,6 @@ void ExtensionsTest::SetUp() { ...@@ -70,8 +70,6 @@ void ExtensionsTest::SetUp() {
} }
extensions_browser_client_->SetMainContext(browser_context_.get()); extensions_browser_client_->SetMainContext(browser_context_.get());
BrowserContextDependencyManager::GetInstance()->MarkBrowserContextLive(
browser_context_.get());
content::SetBrowserClientForTesting(content_browser_client_.get()); content::SetBrowserClientForTesting(content_browser_client_.get());
content::SetUtilityClientForTesting(content_utility_client_.get()); content::SetUtilityClientForTesting(content_utility_client_.get());
ExtensionsBrowserClient::Set(extensions_browser_client_.get()); ExtensionsBrowserClient::Set(extensions_browser_client_.get());
...@@ -102,6 +100,8 @@ void ExtensionsTest::SetUp() { ...@@ -102,6 +100,8 @@ void ExtensionsTest::SetUp() {
// Crashing here? Don't use this class in Chrome's unit_tests. See header. // Crashing here? Don't use this class in Chrome's unit_tests. See header.
BrowserContextDependencyManager::GetInstance() BrowserContextDependencyManager::GetInstance()
->CreateBrowserContextServicesForTest(browser_context_.get()); ->CreateBrowserContextServicesForTest(browser_context_.get());
BrowserContextDependencyManager::GetInstance()
->CreateBrowserContextServicesForTest(incognito_context_.get());
} }
void ExtensionsTest::TearDown() { void ExtensionsTest::TearDown() {
...@@ -110,6 +110,8 @@ void ExtensionsTest::TearDown() { ...@@ -110,6 +110,8 @@ void ExtensionsTest::TearDown() {
// cleaned up before the factories are destroyed. // cleaned up before the factories are destroyed.
BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices( BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices(
browser_context_.get()); browser_context_.get());
BrowserContextDependencyManager::GetInstance()->DestroyBrowserContextServices(
incognito_context_.get());
extensions_browser_client_.reset(); extensions_browser_client_.reset();
ExtensionsBrowserClient::Set(nullptr); ExtensionsBrowserClient::Set(nullptr);
......
...@@ -79,6 +79,11 @@ class MockExtensionSystemFactory : public ExtensionSystemProvider { ...@@ -79,6 +79,11 @@ class MockExtensionSystemFactory : public ExtensionSystemProvider {
content::BrowserContext* context) const override { content::BrowserContext* context) const override {
return new T(context); return new T(context);
} }
content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override {
// Separate instance in incognito.
return context;
}
// ExtensionSystemProvider overrides: // ExtensionSystemProvider overrides:
ExtensionSystem* GetForBrowserContext( ExtensionSystem* GetForBrowserContext(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment