| Index: chrome/browser/background/background_mode_manager_unittest.cc
|
| diff --git a/chrome/browser/background/background_mode_manager_unittest.cc b/chrome/browser/background/background_mode_manager_unittest.cc
|
| index c1f3de763fbabbc919f1676cb7d5c8b54264461c..9c9fe871b4eb268e9ea5244d8b9abe7beb571721 100644
|
| --- a/chrome/browser/background/background_mode_manager_unittest.cc
|
| +++ b/chrome/browser/background/background_mode_manager_unittest.cc
|
| @@ -22,6 +22,9 @@
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/test_extension_system.h"
|
| #include "chrome/browser/lifetime/application_lifetime.h"
|
| +#include "chrome/browser/lifetime/keep_alive_registry.h"
|
| +#include "chrome/browser/lifetime/keep_alive_types.h"
|
| +#include "chrome/browser/lifetime/scoped_keep_alive.h"
|
| #include "chrome/browser/profiles/profile_attributes_entry.h"
|
| #include "chrome/browser/profiles/profile_attributes_storage.h"
|
| #include "chrome/browser/status_icons/status_icon_menu_model.h"
|
| @@ -139,12 +142,12 @@ class TestStatusIcon : public StatusIcon {
|
| };
|
|
|
| void AssertBackgroundModeActive(const TestBackgroundModeManager& manager) {
|
| - EXPECT_TRUE(chrome::WillKeepAlive());
|
| + EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| EXPECT_TRUE(manager.HaveStatusTray());
|
| }
|
|
|
| void AssertBackgroundModeInactive(const TestBackgroundModeManager& manager) {
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| EXPECT_FALSE(manager.HaveStatusTray());
|
| }
|
|
|
| @@ -236,18 +239,9 @@ class BackgroundModeManagerWithExtensionsTest : public testing::Test {
|
| // Aura clears notifications from the message center at shutdown.
|
| message_center::MessageCenter::Initialize();
|
|
|
| - // BackgroundModeManager actually affects Chrome start/stop state,
|
| - // tearing down our thread bundle before we've had chance to clean
|
| - // everything up. Keeping Chrome alive prevents this.
|
| - // We aren't interested in if the keep alive works correctly in this test.
|
| - chrome::IncrementKeepAliveCount();
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - // On ChromeOS shutdown, HandleAppExitingForPlatform will call
|
| - // chrome::DecrementKeepAliveCount because it assumes the aura shell
|
| - // called chrome::IncrementKeepAliveCount. Simulate the call here.
|
| - chrome::IncrementKeepAliveCount();
|
| -#endif
|
| + test_keep_alive_.reset(
|
| + new ScopedKeepAlive(KeepAliveOrigin::BACKGROUND_MODE_MANAGER,
|
| + KeepAliveRestartOption::DISABLED));
|
|
|
| // Create our test BackgroundModeManager.
|
| manager_.reset(new TestBackgroundModeManager(
|
| @@ -274,8 +268,8 @@ class BackgroundModeManagerWithExtensionsTest : public testing::Test {
|
|
|
| // We're getting ready to shutdown the message loop. Clear everything out!
|
| base::MessageLoop::current()->RunUntilIdle();
|
| - // Matching the call to IncrementKeepAliveCount in SetUp().
|
| - chrome::DecrementKeepAliveCount();
|
| +
|
| + test_keep_alive_.reset();
|
|
|
| // TestBackgroundModeManager has dependencies on the infrastructure.
|
| // It should get cleared first.
|
| @@ -288,9 +282,8 @@ class BackgroundModeManagerWithExtensionsTest : public testing::Test {
|
| // before tearing down the Message Center.
|
| profile_manager_.reset();
|
|
|
| - // Message Center shutdown must occur after the DecrementKeepAliveCount
|
| - // because DecrementKeepAliveCount will end up referencing the message
|
| - // center during cleanup.
|
| + // Message Center shutdown must occur after the KeepAlive is released
|
| + // because clearing it will end up referencing the message center.
|
| message_center::MessageCenter::Shutdown();
|
|
|
| // Clear the shutdown flag to isolate the remaining effect of this test.
|
| @@ -329,6 +322,12 @@ class BackgroundModeManagerWithExtensionsTest : public testing::Test {
|
| // Required for extension service.
|
| content::TestBrowserThreadBundle thread_bundle_;
|
|
|
| + // BackgroundModeManager actually affects Chrome start/stop state,
|
| + // tearing down our thread bundle before we've had chance to clean
|
| + // everything up. Keeping Chrome alive prevents this.
|
| + // We aren't interested in if the keep alive works correctly in this test.
|
| + scoped_ptr<ScopedKeepAlive> test_keep_alive_;
|
| +
|
| #if defined(OS_CHROMEOS)
|
| // ChromeOS needs extra services to run in the following order.
|
| chromeos::ScopedTestDeviceSettingsService test_device_settings_service_;
|
| @@ -344,7 +343,7 @@ TEST_F(BackgroundModeManagerTest, BackgroundAppLoadUnload) {
|
| AdvancedTestBackgroundModeManager manager(
|
| *command_line_, profile_manager_->profile_attributes_storage(), true);
|
| manager.RegisterProfile(profile_);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
|
|
| // Mimic app load.
|
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)).Times(Exactly(1));
|
| @@ -477,7 +476,7 @@ TEST_F(BackgroundModeManagerTest, MultiProfile) {
|
| *command_line_, profile_manager_->profile_attributes_storage(), true);
|
| manager.RegisterProfile(profile_);
|
| manager.RegisterProfile(profile2);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
|
|
| // Install app, should show status tray icon.
|
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)).Times(Exactly(1));
|
| @@ -528,7 +527,7 @@ TEST_F(BackgroundModeManagerTest, ProfileAttributesStorage) {
|
| AdvancedTestBackgroundModeManager manager(*command_line_, storage, true);
|
| manager.RegisterProfile(profile_);
|
| manager.RegisterProfile(profile2);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| EXPECT_EQ(2u, storage->GetNumberOfProfiles());
|
|
|
| ProfileAttributesEntry* entry1;
|
| @@ -577,7 +576,7 @@ TEST_F(BackgroundModeManagerTest, ProfileAttributesStorageObserver) {
|
| AdvancedTestBackgroundModeManager manager(
|
| *command_line_, profile_manager_->profile_attributes_storage(), true);
|
| manager.RegisterProfile(profile_);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
|
|
| // Install app, should show status tray icon.
|
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)).Times(Exactly(1));
|
| @@ -595,7 +594,7 @@ TEST_F(BackgroundModeManagerTest, ProfileAttributesStorageObserver) {
|
| EXPECT_EQ(base::UTF8ToUTF16("p1"),
|
| manager.GetBackgroundModeData(profile_)->name());
|
|
|
| - EXPECT_TRUE(chrome::WillKeepAlive());
|
| + EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| TestingProfile* profile2 = profile_manager_->CreateTestingProfile("p2");
|
| manager.RegisterProfile(profile2);
|
| EXPECT_EQ(2, manager.NumberOfBackgroundModeData());
|
| @@ -606,7 +605,7 @@ TEST_F(BackgroundModeManagerTest, ProfileAttributesStorageObserver) {
|
|
|
| manager.OnProfileWillBeRemoved(profile2->GetPath());
|
| // Should still be in background mode after deleting profile.
|
| - EXPECT_TRUE(chrome::WillKeepAlive());
|
| + EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| EXPECT_EQ(1, manager.NumberOfBackgroundModeData());
|
|
|
| // Check that the background mode data we think is in the map actually is.
|
| @@ -620,7 +619,7 @@ TEST_F(BackgroundModeManagerTest, DeleteBackgroundProfile) {
|
| AdvancedTestBackgroundModeManager manager(
|
| *command_line_, profile_manager_->profile_attributes_storage(), true);
|
| manager.RegisterProfile(profile_);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
|
|
| // Install app, should show status tray icon.
|
| EXPECT_CALL(manager, EnableLaunchOnStartup(true)).Times(Exactly(1));
|
| @@ -634,11 +633,11 @@ TEST_F(BackgroundModeManagerTest, DeleteBackgroundProfile) {
|
| manager.GetBackgroundModeData(profile_)->name());
|
|
|
| EXPECT_CALL(manager, EnableLaunchOnStartup(false)).Times(Exactly(1));
|
| - EXPECT_TRUE(chrome::WillKeepAlive());
|
| + EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| manager.SetBackgroundClientCountForProfile(profile_, 0);
|
| manager.OnProfileWillBeRemoved(profile_->GetPath());
|
| Mock::VerifyAndClearExpectations(&manager);
|
| - EXPECT_FALSE(chrome::WillKeepAlive());
|
| + EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive());
|
| }
|
|
|
| TEST_F(BackgroundModeManagerTest, DisableBackgroundModeUnderTestFlag) {
|
|
|