• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff --git chrome/browser/app_controller_mac.mm chrome/browser/app_controller_mac.mm
2index 8fd9ba22110e..327c788df2d3 100644
3--- chrome/browser/app_controller_mac.mm
4+++ chrome/browser/app_controller_mac.mm
5@@ -31,6 +31,7 @@
6 #include "base/threading/scoped_blocking_call.h"
7 #include "base/threading/thread_restrictions.h"
8 #include "build/branding_buildflags.h"
9+#include "cef/libcef/features/features.h"
10 #include "chrome/app/chrome_command_ids.h"
11 #include "chrome/browser/apps/app_shim/app_shim_manager_mac.h"
12 #include "chrome/browser/apps/app_shim/app_shim_termination_manager.h"
13@@ -1211,6 +1212,7 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
14
15 // Run a (background) application in a new tab.
16 - (void)executeApplication:(id)sender {
17+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
18   NSInteger tag = [sender tag];
19   Profile* profile = [self lastProfile];
20   DCHECK(profile);
21@@ -1219,6 +1221,7 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
22          tag < static_cast<int>(applications.size()));
23   const extensions::Extension* extension = applications.GetExtension(tag);
24   BackgroundModeManager::LaunchBackgroundApplication(profile, extension);
25+#endif  // BUILDFLAG(ENABLE_BACKGROUND_MODE)
26 }
27
28 // Same as |-commandDispatch:|, but executes commands using a disposition
29@@ -1607,6 +1610,7 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
30   // TODO(rickcam): Mock out BackgroundApplicationListModel, then add unit
31   // tests which use the mock in place of the profile-initialized model.
32
33+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
34   // Avoid breaking unit tests which have no profile.
35   if (profile) {
36     BackgroundApplicationListModel applications(profile);
37@@ -1633,6 +1637,7 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
38       }
39     }
40   }
41+#endif  // BUILDFLAG(ENABLE_BACKGROUND_MODE)
42
43   return dockMenu;
44 }
45@@ -1862,11 +1867,13 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
46 namespace {
47
48 void UpdateProfileInUse(Profile* profile, Profile::CreateStatus status) {
49+#if !BUILDFLAG(ENABLE_CEF)
50   if (status == Profile::CREATE_STATUS_INITIALIZED) {
51     AppController* controller =
52         base::mac::ObjCCastStrict<AppController>([NSApp delegate]);
53     [controller windowChangedToProfile:profile];
54   }
55+#endif  // !BUILDFLAG(ENABLE_CEF)
56 }
57
58 }  // namespace
59diff --git chrome/browser/browser_process.h chrome/browser/browser_process.h
60index 3d634db18900..96e44ad48e5e 100644
61--- chrome/browser/browser_process.h
62+++ chrome/browser/browser_process.h
63@@ -197,9 +197,9 @@ class BrowserProcess {
64   virtual DownloadStatusUpdater* download_status_updater() = 0;
65   virtual DownloadRequestLimiter* download_request_limiter() = 0;
66
67+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
68   // Returns the object that manages background applications.
69   virtual BackgroundModeManager* background_mode_manager() = 0;
70-#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
71   virtual void set_background_mode_manager_for_test(
72       std::unique_ptr<BackgroundModeManager> manager) = 0;
73 #endif
74diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc
75index 89a682d5c935..946ccbda587c 100644
76--- chrome/browser/browser_process_impl.cc
77+++ chrome/browser/browser_process_impl.cc
78@@ -947,18 +947,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
79   return download_request_limiter_.get();
80 }
81
82-BackgroundModeManager* BrowserProcessImpl::background_mode_manager() {
83 #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
84+BackgroundModeManager* BrowserProcessImpl::background_mode_manager() {
85   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
86   if (!background_mode_manager_)
87     CreateBackgroundModeManager();
88   return background_mode_manager_.get();
89-#else
90-  return nullptr;
91-#endif
92 }
93
94-#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
95 void BrowserProcessImpl::set_background_mode_manager_for_test(
96     std::unique_ptr<BackgroundModeManager> manager) {
97   background_mode_manager_ = std::move(manager);
98diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h
99index b4ceefbccd08..7d60206c83b1 100644
100--- chrome/browser/browser_process_impl.h
101+++ chrome/browser/browser_process_impl.h
102@@ -169,8 +169,8 @@ class BrowserProcessImpl : public BrowserProcess,
103   void SetApplicationLocale(const std::string& actual_locale) override;
104   DownloadStatusUpdater* download_status_updater() override;
105   DownloadRequestLimiter* download_request_limiter() override;
106-  BackgroundModeManager* background_mode_manager() override;
107 #if BUILDFLAG(ENABLE_BACKGROUND_MODE)
108+  BackgroundModeManager* background_mode_manager() override;
109   void set_background_mode_manager_for_test(
110       std::unique_ptr<BackgroundModeManager> manager) override;
111 #endif
112diff --git chrome/browser/lifetime/browser_close_manager.cc chrome/browser/lifetime/browser_close_manager.cc
113index e0cafee5eedd..06ded156be3c 100644
114--- chrome/browser/lifetime/browser_close_manager.cc
115+++ chrome/browser/lifetime/browser_close_manager.cc
116@@ -148,12 +148,14 @@ void BrowserCloseManager::CloseBrowsers() {
117   // exit can restore all browsers open before exiting.
118   ProfileManager::ShutdownSessionServices();
119 #endif
120+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
121   if (!browser_shutdown::IsTryingToQuit()) {
122     BackgroundModeManager* background_mode_manager =
123         g_browser_process->background_mode_manager();
124     if (background_mode_manager)
125       background_mode_manager->SuspendBackgroundMode();
126   }
127+#endif
128
129   // Make a copy of the BrowserList to simplify the case where we need to
130   // destroy a Browser during the loop.
131diff --git chrome/browser/sessions/session_service.cc chrome/browser/sessions/session_service.cc
132index 24a6b1a3634d..abcb36d783de 100644
133--- chrome/browser/sessions/session_service.cc
134+++ chrome/browser/sessions/session_service.cc
135@@ -516,12 +516,19 @@ void SessionService::MaybeDeleteSessionOnlyData() {
136   if (profile()->AsTestingProfile())
137     return;
138
139+#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
140+  const bool background_mode_active =
141+      g_browser_process->background_mode_manager()->IsBackgroundModeActive();
142+#else
143+  const bool background_mode_active = false;
144+#endif
145+
146   // Clear session data if the last window for a profile has been closed and
147   // closing the last window would normally close Chrome, unless background mode
148   // is active.  Tests don't have a background_mode_manager.
149   if (has_open_trackable_browsers_ ||
150       browser_defaults::kBrowserAliveWithNoWindows ||
151-      g_browser_process->background_mode_manager()->IsBackgroundModeActive()) {
152+      background_mode_active) {
153     return;
154   }
155
156