| Index: chrome/browser/extensions/api/preference/preference_apitest.cc
|
| diff --git a/chrome/browser/extensions/api/preference/preference_apitest.cc b/chrome/browser/extensions/api/preference/preference_apitest.cc
|
| index a8f8438c9894e1a354626cfca81ab8b842bfde63..f6e7e40c537e82963a5b97e85264072b647316cd 100644
|
| --- a/chrome/browser/extensions/api/preference/preference_apitest.cc
|
| +++ b/chrome/browser/extensions/api/preference/preference_apitest.cc
|
| @@ -2,7 +2,9 @@
|
| // 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"
|
| @@ -10,6 +12,8 @@
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chrome_notification_types.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/net/prediction_options.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser.h"
|
| @@ -28,14 +32,6 @@
|
| #include "extensions/test/extension_test_message_listener.h"
|
| #include "extensions/test/result_catcher.h"
|
|
|
| -namespace {
|
| -
|
| -void ReleaseBrowserProcessModule() {
|
| - g_browser_process->ReleaseModule();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| class ExtensionPreferenceApiTest : public ExtensionApiTest {
|
| protected:
|
| ExtensionPreferenceApiTest() : profile_(NULL) {}
|
| @@ -90,20 +86,23 @@ class ExtensionPreferenceApiTest : public ExtensionApiTest {
|
| // Closing the last browser window also releases a module reference. 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();
|
| }
|
|
|
| Profile* profile_;
|
| + scoped_ptr<ScopedKeepAlive> keep_alive_;
|
| };
|
|
|
| // http://crbug.com/177163
|
|
|