| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "chrome/browser/background/background_mode_manager.h" | 9 #include "chrome/browser/background/background_mode_manager.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 | 96 |
| 97 class RepeatedNotificationObserver : public content::NotificationObserver { | 97 class RepeatedNotificationObserver : public content::NotificationObserver { |
| 98 public: | 98 public: |
| 99 explicit RepeatedNotificationObserver(int type, int count) | 99 explicit RepeatedNotificationObserver(int type, int count) |
| 100 : num_outstanding_(count), running_(false) { | 100 : num_outstanding_(count), running_(false) { |
| 101 registrar_.Add(this, type, content::NotificationService::AllSources()); | 101 registrar_.Add(this, type, content::NotificationService::AllSources()); |
| 102 } | 102 } |
| 103 | 103 |
| 104 virtual void Observe(int type, | 104 virtual void Observe(int type, |
| 105 const content::NotificationSource& source, | 105 const content::NotificationSource& source, |
| 106 const content::NotificationDetails& details) OVERRIDE { | 106 const content::NotificationDetails& details) override { |
| 107 ASSERT_GT(num_outstanding_, 0); | 107 ASSERT_GT(num_outstanding_, 0); |
| 108 if (!--num_outstanding_ && running_) { | 108 if (!--num_outstanding_ && running_) { |
| 109 content::BrowserThread::PostTask( | 109 content::BrowserThread::PostTask( |
| 110 content::BrowserThread::UI, FROM_HERE, run_loop_.QuitClosure()); | 110 content::BrowserThread::UI, FROM_HERE, run_loop_.QuitClosure()); |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 | 113 |
| 114 void Wait() { | 114 void Wait() { |
| 115 if (num_outstanding_ <= 0) | 115 if (num_outstanding_ <= 0) |
| 116 return; | 116 return; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 142 new TestBrowserCloseManager(user_choice); | 142 new TestBrowserCloseManager(user_choice); |
| 143 browser_shutdown::SetTryingToQuit(true); | 143 browser_shutdown::SetTryingToQuit(true); |
| 144 browser_close_manager->StartClosingBrowsers(); | 144 browser_close_manager->StartClosingBrowsers(); |
| 145 } | 145 } |
| 146 | 146 |
| 147 protected: | 147 protected: |
| 148 virtual ~TestBrowserCloseManager() {} | 148 virtual ~TestBrowserCloseManager() {} |
| 149 | 149 |
| 150 virtual void ConfirmCloseWithPendingDownloads( | 150 virtual void ConfirmCloseWithPendingDownloads( |
| 151 int download_count, | 151 int download_count, |
| 152 const base::Callback<void(bool)>& callback) OVERRIDE { | 152 const base::Callback<void(bool)>& callback) override { |
| 153 EXPECT_NE(NO_USER_CHOICE, user_choice_); | 153 EXPECT_NE(NO_USER_CHOICE, user_choice_); |
| 154 switch (user_choice_) { | 154 switch (user_choice_) { |
| 155 case NO_USER_CHOICE: | 155 case NO_USER_CHOICE: |
| 156 case USER_CHOICE_USER_CANCELS_CLOSE: { | 156 case USER_CHOICE_USER_CANCELS_CLOSE: { |
| 157 callback.Run(false); | 157 callback.Run(false); |
| 158 break; | 158 break; |
| 159 } | 159 } |
| 160 case USER_CHOICE_USER_ALLOWS_CLOSE: { | 160 case USER_CHOICE_USER_ALLOWS_CLOSE: { |
| 161 callback.Run(true); | 161 callback.Run(true); |
| 162 break; | 162 break; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 176 class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate { | 176 class TestDownloadManagerDelegate : public ChromeDownloadManagerDelegate { |
| 177 public: | 177 public: |
| 178 explicit TestDownloadManagerDelegate(Profile* profile) | 178 explicit TestDownloadManagerDelegate(Profile* profile) |
| 179 : ChromeDownloadManagerDelegate(profile) { | 179 : ChromeDownloadManagerDelegate(profile) { |
| 180 GetDownloadIdReceiverCallback().Run(content::DownloadItem::kInvalidId + 1); | 180 GetDownloadIdReceiverCallback().Run(content::DownloadItem::kInvalidId + 1); |
| 181 } | 181 } |
| 182 virtual ~TestDownloadManagerDelegate() {} | 182 virtual ~TestDownloadManagerDelegate() {} |
| 183 | 183 |
| 184 virtual bool DetermineDownloadTarget( | 184 virtual bool DetermineDownloadTarget( |
| 185 content::DownloadItem* item, | 185 content::DownloadItem* item, |
| 186 const content::DownloadTargetCallback& callback) OVERRIDE { | 186 const content::DownloadTargetCallback& callback) override { |
| 187 content::DownloadTargetCallback dangerous_callback = | 187 content::DownloadTargetCallback dangerous_callback = |
| 188 base::Bind(&TestDownloadManagerDelegate::SetDangerous, callback); | 188 base::Bind(&TestDownloadManagerDelegate::SetDangerous, callback); |
| 189 return ChromeDownloadManagerDelegate::DetermineDownloadTarget( | 189 return ChromeDownloadManagerDelegate::DetermineDownloadTarget( |
| 190 item, dangerous_callback); | 190 item, dangerous_callback); |
| 191 } | 191 } |
| 192 | 192 |
| 193 static void SetDangerous( | 193 static void SetDangerous( |
| 194 const content::DownloadTargetCallback& callback, | 194 const content::DownloadTargetCallback& callback, |
| 195 const base::FilePath& target_path, | 195 const base::FilePath& target_path, |
| 196 content::DownloadItem::TargetDisposition disp, | 196 content::DownloadItem::TargetDisposition disp, |
| 197 content::DownloadDangerType danger_type, | 197 content::DownloadDangerType danger_type, |
| 198 const base::FilePath& intermediate_path) { | 198 const base::FilePath& intermediate_path) { |
| 199 callback.Run(target_path, | 199 callback.Run(target_path, |
| 200 disp, | 200 disp, |
| 201 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, | 201 content::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL, |
| 202 intermediate_path); | 202 intermediate_path); |
| 203 } | 203 } |
| 204 }; | 204 }; |
| 205 | 205 |
| 206 class FakeBackgroundModeManager : public BackgroundModeManager { | 206 class FakeBackgroundModeManager : public BackgroundModeManager { |
| 207 public: | 207 public: |
| 208 FakeBackgroundModeManager() | 208 FakeBackgroundModeManager() |
| 209 : BackgroundModeManager( | 209 : BackgroundModeManager( |
| 210 CommandLine::ForCurrentProcess(), | 210 CommandLine::ForCurrentProcess(), |
| 211 &g_browser_process->profile_manager()->GetProfileInfoCache()), | 211 &g_browser_process->profile_manager()->GetProfileInfoCache()), |
| 212 suspended_(false) {} | 212 suspended_(false) {} |
| 213 | 213 |
| 214 virtual void SuspendBackgroundMode() OVERRIDE { | 214 virtual void SuspendBackgroundMode() override { |
| 215 BackgroundModeManager::SuspendBackgroundMode(); | 215 BackgroundModeManager::SuspendBackgroundMode(); |
| 216 suspended_ = true; | 216 suspended_ = true; |
| 217 } | 217 } |
| 218 | 218 |
| 219 virtual void ResumeBackgroundMode() OVERRIDE { | 219 virtual void ResumeBackgroundMode() override { |
| 220 BackgroundModeManager::ResumeBackgroundMode(); | 220 BackgroundModeManager::ResumeBackgroundMode(); |
| 221 suspended_ = false; | 221 suspended_ = false; |
| 222 } | 222 } |
| 223 | 223 |
| 224 bool IsBackgroundModeSuspended() { | 224 bool IsBackgroundModeSuspended() { |
| 225 return suspended_; | 225 return suspended_; |
| 226 } | 226 } |
| 227 | 227 |
| 228 private: | 228 private: |
| 229 bool suspended_; | 229 bool suspended_; |
| 230 | 230 |
| 231 DISALLOW_COPY_AND_ASSIGN(FakeBackgroundModeManager); | 231 DISALLOW_COPY_AND_ASSIGN(FakeBackgroundModeManager); |
| 232 }; | 232 }; |
| 233 | 233 |
| 234 } // namespace | 234 } // namespace |
| 235 | 235 |
| 236 class BrowserCloseManagerBrowserTest | 236 class BrowserCloseManagerBrowserTest |
| 237 : public InProcessBrowserTest, | 237 : public InProcessBrowserTest, |
| 238 public testing::WithParamInterface<bool> { | 238 public testing::WithParamInterface<bool> { |
| 239 protected: | 239 protected: |
| 240 virtual void SetUpOnMainThread() OVERRIDE { | 240 virtual void SetUpOnMainThread() override { |
| 241 InProcessBrowserTest::SetUpOnMainThread(); | 241 InProcessBrowserTest::SetUpOnMainThread(); |
| 242 SessionStartupPref::SetStartupPref( | 242 SessionStartupPref::SetStartupPref( |
| 243 browser()->profile(), SessionStartupPref(SessionStartupPref::LAST)); | 243 browser()->profile(), SessionStartupPref(SessionStartupPref::LAST)); |
| 244 browsers_.push_back(browser()); | 244 browsers_.push_back(browser()); |
| 245 dialogs_.Start(); | 245 dialogs_.Start(); |
| 246 content::BrowserThread::PostTask( | 246 content::BrowserThread::PostTask( |
| 247 content::BrowserThread::IO, | 247 content::BrowserThread::IO, |
| 248 FROM_HERE, | 248 FROM_HERE, |
| 249 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 249 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 250 } | 250 } |
| 251 | 251 |
| 252 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 252 virtual void SetUpCommandLine(CommandLine* command_line) override { |
| 253 if (GetParam()) | 253 if (GetParam()) |
| 254 command_line->AppendSwitch(switches::kEnableFastUnload); | 254 command_line->AppendSwitch(switches::kEnableFastUnload); |
| 255 #if defined(OS_CHROMEOS) | 255 #if defined(OS_CHROMEOS) |
| 256 command_line->AppendSwitch( | 256 command_line->AppendSwitch( |
| 257 chromeos::switches::kIgnoreUserProfileMappingForTests); | 257 chromeos::switches::kIgnoreUserProfileMappingForTests); |
| 258 #endif | 258 #endif |
| 259 } | 259 } |
| 260 | 260 |
| 261 void CreateStalledDownload(Browser* browser) { | 261 void CreateStalledDownload(Browser* browser) { |
| 262 content::DownloadTestObserverInProgress observer( | 262 content::DownloadTestObserverInProgress observer( |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerBrowserTest, | 705 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerBrowserTest, |
| 706 BrowserCloseManagerBrowserTest, | 706 BrowserCloseManagerBrowserTest, |
| 707 testing::Bool()); | 707 testing::Bool()); |
| 708 | 708 |
| 709 class BrowserCloseManagerWithDownloadsBrowserTest : | 709 class BrowserCloseManagerWithDownloadsBrowserTest : |
| 710 public BrowserCloseManagerBrowserTest { | 710 public BrowserCloseManagerBrowserTest { |
| 711 public: | 711 public: |
| 712 BrowserCloseManagerWithDownloadsBrowserTest() {} | 712 BrowserCloseManagerWithDownloadsBrowserTest() {} |
| 713 virtual ~BrowserCloseManagerWithDownloadsBrowserTest() {} | 713 virtual ~BrowserCloseManagerWithDownloadsBrowserTest() {} |
| 714 | 714 |
| 715 virtual void SetUpOnMainThread() OVERRIDE { | 715 virtual void SetUpOnMainThread() override { |
| 716 BrowserCloseManagerBrowserTest::SetUpOnMainThread(); | 716 BrowserCloseManagerBrowserTest::SetUpOnMainThread(); |
| 717 ASSERT_TRUE(scoped_download_directory_.CreateUniqueTempDir()); | 717 ASSERT_TRUE(scoped_download_directory_.CreateUniqueTempDir()); |
| 718 } | 718 } |
| 719 | 719 |
| 720 void SetDownloadPathForProfile(Profile* profile) { | 720 void SetDownloadPathForProfile(Profile* profile) { |
| 721 DownloadPrefs* download_prefs = DownloadPrefs::FromBrowserContext(profile); | 721 DownloadPrefs* download_prefs = DownloadPrefs::FromBrowserContext(profile); |
| 722 download_prefs->SetDownloadPath(download_path()); | 722 download_prefs->SetDownloadPath(download_path()); |
| 723 } | 723 } |
| 724 | 724 |
| 725 const base::FilePath& download_path() const { | 725 const base::FilePath& download_path() const { |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 | 888 |
| 889 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithDownloadsBrowserTest, | 889 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithDownloadsBrowserTest, |
| 890 BrowserCloseManagerWithDownloadsBrowserTest, | 890 BrowserCloseManagerWithDownloadsBrowserTest, |
| 891 testing::Bool()); | 891 testing::Bool()); |
| 892 | 892 |
| 893 class BrowserCloseManagerWithBackgroundModeBrowserTest | 893 class BrowserCloseManagerWithBackgroundModeBrowserTest |
| 894 : public BrowserCloseManagerBrowserTest { | 894 : public BrowserCloseManagerBrowserTest { |
| 895 public: | 895 public: |
| 896 BrowserCloseManagerWithBackgroundModeBrowserTest() {} | 896 BrowserCloseManagerWithBackgroundModeBrowserTest() {} |
| 897 | 897 |
| 898 virtual void SetUpOnMainThread() OVERRIDE { | 898 virtual void SetUpOnMainThread() override { |
| 899 BrowserCloseManagerBrowserTest::SetUpOnMainThread(); | 899 BrowserCloseManagerBrowserTest::SetUpOnMainThread(); |
| 900 g_browser_process->set_background_mode_manager_for_test( | 900 g_browser_process->set_background_mode_manager_for_test( |
| 901 scoped_ptr<BackgroundModeManager>(new FakeBackgroundModeManager)); | 901 scoped_ptr<BackgroundModeManager>(new FakeBackgroundModeManager)); |
| 902 } | 902 } |
| 903 | 903 |
| 904 bool IsBackgroundModeSuspended() { | 904 bool IsBackgroundModeSuspended() { |
| 905 return static_cast<FakeBackgroundModeManager*>( | 905 return static_cast<FakeBackgroundModeManager*>( |
| 906 g_browser_process->background_mode_manager()) | 906 g_browser_process->background_mode_manager()) |
| 907 ->IsBackgroundModeSuspended(); | 907 ->IsBackgroundModeSuspended(); |
| 908 } | 908 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 977 | 977 |
| 978 chrome::CloseAllBrowsers(); | 978 chrome::CloseAllBrowsers(); |
| 979 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); | 979 EXPECT_FALSE(browser_shutdown::IsTryingToQuit()); |
| 980 EXPECT_TRUE(chrome::BrowserIterator().done()); | 980 EXPECT_TRUE(chrome::BrowserIterator().done()); |
| 981 EXPECT_TRUE(IsBackgroundModeSuspended()); | 981 EXPECT_TRUE(IsBackgroundModeSuspended()); |
| 982 } | 982 } |
| 983 | 983 |
| 984 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithBackgroundModeBrowserTest, | 984 INSTANTIATE_TEST_CASE_P(BrowserCloseManagerWithBackgroundModeBrowserTest, |
| 985 BrowserCloseManagerWithBackgroundModeBrowserTest, | 985 BrowserCloseManagerWithBackgroundModeBrowserTest, |
| 986 testing::Bool()); | 986 testing::Bool()); |
| OLD | NEW |