mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
This mode doesn't make sense with CEF, and it was causing strange shutdown crashes when running with Chrome mode enabled.
109 lines
4.6 KiB
Diff
109 lines
4.6 KiB
Diff
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<BackgroundModeManager> 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<BackgroundModeManager> 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<BackgroundModeManager> 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;
|
|
}
|
|
|