Index: chrome/test/testing_browser_process.cc |
diff --git a/chrome/test/testing_browser_process.cc b/chrome/test/testing_browser_process.cc |
index 004ac87def5f66708b07eb864f995a173c573e74..4d50fa4737b7bc5b23075686955d7dfa41c69015 100644 |
--- a/chrome/test/testing_browser_process.cc |
+++ b/chrome/test/testing_browser_process.cc |
@@ -192,3 +192,26 @@ void TestingBrowserProcess::SetGoogleURLTracker( |
GoogleURLTracker* google_url_tracker) { |
google_url_tracker_.reset(google_url_tracker); |
} |
+ |
+ScopedTestingBrowserProcess::ScopedTestingBrowserProcess() { |
+ // TODO(phajdan.jr): Temporary, for http://crbug.com/61062. |
+ // ChromeTestSuite sets up a global TestingBrowserProcess |
+ // for all tests. We need to get rid of it, because it contains |
+ // a NotificationService, and there can be only one NotificationService |
+ // per thread. |
+ DCHECK(g_browser_process); |
+ delete g_browser_process; |
+ |
+ browser_process_.reset(new TestingBrowserProcess); |
+ g_browser_process = browser_process_.get(); |
+} |
+ |
+ScopedTestingBrowserProcess::~ScopedTestingBrowserProcess() { |
+ DCHECK_EQ(browser_process_.get(), g_browser_process); |
+ |
+ // TODO(phajdan.jr): Temporary, for http://crbug.com/61062. |
+ // After the transition is over, we should just |
+ // reset |g_browser_process| to NULL. |
+ browser_process_.reset(); |
+ g_browser_process = new TestingBrowserProcess(); |
+} |