Index: chrome/browser/extensions/api/content_settings/content_settings_apitest.cc |
diff --git a/chrome/browser/extensions/api/content_settings/content_settings_apitest.cc b/chrome/browser/extensions/api/content_settings/content_settings_apitest.cc |
index 1447af8ad9e40e7a03c094740c30c2a0dc9adcda..3867baa3e67664580a55279058135f2109d0f274 100644 |
--- a/chrome/browser/extensions/api/content_settings/content_settings_apitest.cc |
+++ b/chrome/browser/extensions/api/content_settings/content_settings_apitest.cc |
@@ -2,17 +2,20 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/bind_helpers.h" |
#include "base/location.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/single_thread_task_runner.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/thread_task_runner_handle.h" |
#include "build/build_config.h" |
-#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/content_settings/cookie_settings_factory.h" |
#include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
#include "chrome/browser/extensions/api/content_settings/content_settings_api.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
+#include "chrome/browser/lifetime/keep_alive_types.h" |
+#include "chrome/browser/lifetime/scoped_keep_alive.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/common/chrome_switches.h" |
@@ -27,14 +30,6 @@ |
#include "extensions/browser/extension_registry.h" |
#include "extensions/browser/test_extension_registry_observer.h" |
-namespace { |
- |
-void ReleaseBrowserProcessModule() { |
- g_browser_process->ReleaseModule(); |
-} |
- |
-} // namespace |
- |
namespace extensions { |
class ExtensionContentSettingsApiTest : public ExtensionApiTest { |
@@ -53,17 +48,19 @@ class ExtensionContentSettingsApiTest : public ExtensionApiTest { |
// save the profile. |
profile_ = browser()->profile(); |
- // Closing the last browser window also releases a module reference. Make |
+ // Closing the last browser window also releases a KeepAlive. Make |
// sure it's not the last one, so the message loop doesn't quit |
// unexpectedly. |
- g_browser_process->AddRefModule(); |
+ keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::BROWSER, |
+ KeepAliveRestartOption::DISABLED)); |
} |
void TearDownOnMainThread() override { |
- // ReleaseBrowserProcessModule() needs to be called in a message loop, so we |
- // post a task to do it, then run the message loop. |
+ // BrowserProcess::Shutdown() needs to be called in a message loop, so we |
+ // post a task to release the keep alive, then run the message loop. |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&ReleaseBrowserProcessModule)); |
+ FROM_HERE, base::Bind(&scoped_ptr<ScopedKeepAlive>::reset, |
+ base::Unretained(&keep_alive_), nullptr)); |
content::RunAllPendingInMessageLoop(); |
ExtensionApiTest::TearDownOnMainThread(); |
@@ -240,6 +237,7 @@ class ExtensionContentSettingsApiTest : public ExtensionApiTest { |
private: |
Profile* profile_; |
+ scoped_ptr<ScopedKeepAlive> keep_alive_; |
}; |
// http://crbug.com/177163 |