diff --git chrome/browser/browser_process.h chrome/browser/browser_process.h index 6332572ac884..bf555124ce59 100644 --- chrome/browser/browser_process.h +++ chrome/browser/browser_process.h @@ -197,10 +197,12 @@ class BrowserProcess { virtual DownloadStatusUpdater* download_status_updater() = 0; virtual DownloadRequestLimiter* download_request_limiter() = 0; +#if BUILDFLAG(ENABLE_BACKGROUND_MODE) // Returns the object that manages background applications. virtual BackgroundModeManager* background_mode_manager() = 0; virtual void set_background_mode_manager_for_test( std::unique_ptr manager) = 0; +#endif // Returns the StatusTray, which provides an API for displaying status icons // in the system status tray. Returns NULL if status icons are not supported diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc index 13958187a750..0017954a32da 100644 --- chrome/browser/browser_process_impl.cc +++ chrome/browser/browser_process_impl.cc @@ -963,24 +963,19 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() { return download_request_limiter_.get(); } +#if BUILDFLAG(ENABLE_BACKGROUND_MODE) BackgroundModeManager* BrowserProcessImpl::background_mode_manager() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -#if BUILDFLAG(ENABLE_BACKGROUND_MODE) if (!background_mode_manager_) CreateBackgroundModeManager(); return background_mode_manager_.get(); -#else - NOTIMPLEMENTED(); - return NULL; -#endif } void BrowserProcessImpl::set_background_mode_manager_for_test( std::unique_ptr manager) { -#if BUILDFLAG(ENABLE_BACKGROUND_MODE) background_mode_manager_ = std::move(manager); -#endif } +#endif StatusTray* BrowserProcessImpl::status_tray() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h index 12c76fb96762..60637b2b0044 100644 --- chrome/browser/browser_process_impl.h +++ chrome/browser/browser_process_impl.h @@ -164,9 +164,11 @@ class BrowserProcessImpl : public BrowserProcess, void SetApplicationLocale(const std::string& actual_locale) override; DownloadStatusUpdater* download_status_updater() override; DownloadRequestLimiter* download_request_limiter() override; +#if BUILDFLAG(ENABLE_BACKGROUND_MODE) BackgroundModeManager* background_mode_manager() override; void set_background_mode_manager_for_test( std::unique_ptr manager) override; +#endif StatusTray* status_tray() override; safe_browsing::SafeBrowsingService* safe_browsing_service() override; subresource_filter::RulesetService* subresource_filter_ruleset_service() diff --git chrome/browser/lifetime/browser_close_manager.cc chrome/browser/lifetime/browser_close_manager.cc index bc7995a47fbd..28d3658d2885 100644 --- chrome/browser/lifetime/browser_close_manager.cc +++ chrome/browser/lifetime/browser_close_manager.cc @@ -147,12 +147,14 @@ void BrowserCloseManager::CloseBrowsers() { // exit can restore all browsers open before exiting. ProfileManager::ShutdownSessionServices(); #endif +#if BUILDFLAG(ENABLE_BACKGROUND_MODE) if (!browser_shutdown::IsTryingToQuit()) { BackgroundModeManager* background_mode_manager = g_browser_process->background_mode_manager(); if (background_mode_manager) background_mode_manager->SuspendBackgroundMode(); } +#endif // Make a copy of the BrowserList to simplify the case where we need to // destroy a Browser during the loop. diff --git chrome/browser/sessions/session_service.cc chrome/browser/sessions/session_service.cc index f5079f6d2189..a43a981d471b 100644 --- chrome/browser/sessions/session_service.cc +++ chrome/browser/sessions/session_service.cc @@ -942,12 +942,19 @@ void SessionService::MaybeDeleteSessionOnlyData() { if (!profile() || profile()->AsTestingProfile()) return; +#if BUILDFLAG(ENABLE_BACKGROUND_MODE) + const bool background_mode_active = + g_browser_process->background_mode_manager()->IsBackgroundModeActive(); +#else + const bool background_mode_active = false; +#endif + // Clear session data if the last window for a profile has been closed and // closing the last window would normally close Chrome, unless background mode // is active. Tests don't have a background_mode_manager. if (has_open_trackable_browsers_ || browser_defaults::kBrowserAliveWithNoWindows || - g_browser_process->background_mode_manager()->IsBackgroundModeActive()) { + background_mode_active) { return; }