| 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
|
|
|