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 |