Index: chrome/test/base/chrome_test_suite.cc |
diff --git a/chrome/test/base/chrome_test_suite.cc b/chrome/test/base/chrome_test_suite.cc |
index 7183b5ca1cfe62bf72a33ed3280c8faa39ba7ad6..6e77263870964baff29ea09ffc337ffed9d53522 100644 |
--- a/chrome/test/base/chrome_test_suite.cc |
+++ b/chrome/test/base/chrome_test_suite.cc |
@@ -93,6 +93,24 @@ class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { |
DCHECK(!g_browser_process); |
g_browser_process = new TestingBrowserProcess; |
+ SetUpContentClients(); |
+ SetUpExtensionsClients(); |
+ } |
+ |
+ virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { |
+ TearDownExtensionsClients(); |
+ TearDownContentClients(); |
James Cook
2013/11/01 20:53:12
This teardown has no significant side effects, so
|
+ |
+ if (g_browser_process) { |
+ BrowserProcess* browser_process = g_browser_process; |
+ // g_browser_process must be NULL during its own destruction. |
+ g_browser_process = NULL; |
+ delete browser_process; |
+ } |
+ } |
+ |
+ private: |
+ void SetUpContentClients() { |
content_client_.reset(new chrome::ChromeContentClient); |
content::SetContentClient(content_client_.get()); |
// TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
@@ -104,14 +122,7 @@ class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { |
#endif |
} |
- virtual void OnTestEnd(const testing::TestInfo& test_info) OVERRIDE { |
- if (g_browser_process) { |
- BrowserProcess* browser_process = g_browser_process; |
- // g_browser_process must be NULL during its own destruction. |
- g_browser_process = NULL; |
- delete browser_process; |
- } |
- |
+ void TearDownContentClients() { |
// TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
#if !defined(OS_IOS) |
browser_content_client_.reset(); |
@@ -121,7 +132,22 @@ class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { |
content::SetContentClient(NULL); |
} |
- private: |
+ void SetUpExtensionsClients() { |
+#if defined(ENABLE_EXTENSIONS) |
+ extensions_browser_client_.reset( |
+ new extensions::ChromeExtensionsBrowserClient); |
+ extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
James Cook
2013/11/01 20:53:12
This must be done after content is initialized bec
|
+#endif |
+ } |
+ |
+ void TearDownExtensionsClients() { |
+#if defined(ENABLE_EXTENSIONS) |
+ extensions_browser_client_.reset(); |
+ extensions::ExtensionsBrowserClient::Set(NULL); |
+#endif |
+ } |
+ |
+ // Client implementations for the content module. |
scoped_ptr<chrome::ChromeContentClient> content_client_; |
// TODO(ios): Bring this back once ChromeContentBrowserClient is building. |
#if !defined(OS_IOS) |
@@ -129,6 +155,10 @@ class ChromeTestSuiteInitializer : public testing::EmptyTestEventListener { |
scoped_ptr<chrome::ChromeContentUtilityClient> utility_content_client_; |
#endif |
+ // Client implementations for the extensions module. |
+ scoped_ptr<extensions::ChromeExtensionsBrowserClient> |
+ extensions_browser_client_; |
+ |
DISALLOW_COPY_AND_ASSIGN(ChromeTestSuiteInitializer); |
}; |
@@ -172,8 +202,6 @@ void ChromeTestSuite::Initialize() { |
extensions::ExtensionsClient::Set( |
extensions::ChromeExtensionsClient::GetInstance()); |
- extensions::ExtensionsBrowserClient::Set( |
- extensions::ChromeExtensionsBrowserClient::GetInstance()); |
// Only want to do this for unit tests. |
if (!content::GetCurrentTestLauncherDelegate()) { |