OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // When each service is created, we set a flag indicating this. At this point, | 5 // When each service is created, we set a flag indicating this. At this point, |
6 // the service initialization could fail or succeed. This allows us to remember | 6 // the service initialization could fail or succeed. This allows us to remember |
7 // if we tried to create a service, and not try creating it over and over if | 7 // if we tried to create a service, and not try creating it over and over if |
8 // the creation failed. | 8 // the creation failed. |
9 | 9 |
10 #ifndef CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ | 10 #ifndef CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ |
11 #define CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ | 11 #define CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ |
12 | 12 |
13 #include <stdint.h> | 13 #include <stdint.h> |
14 | 14 |
15 #include <string> | 15 #include <string> |
16 | 16 |
17 #include "base/debug/stack_trace.h" | 17 #include "base/debug/stack_trace.h" |
18 #include "base/macros.h" | 18 #include "base/macros.h" |
19 #include "base/memory/ref_counted.h" | 19 #include "base/memory/ref_counted.h" |
20 #include "base/memory/scoped_ptr.h" | 20 #include "base/memory/scoped_ptr.h" |
21 #include "base/threading/non_thread_safe.h" | 21 #include "base/threading/non_thread_safe.h" |
22 #include "base/timer/timer.h" | 22 #include "base/timer/timer.h" |
23 #include "build/build_config.h" | 23 #include "build/build_config.h" |
24 #include "chrome/browser/browser_process.h" | 24 #include "chrome/browser/browser_process.h" |
25 #include "chrome/browser/lifetime/keep_alive_state_observer.h" | |
25 #include "chrome/common/features.h" | 26 #include "chrome/common/features.h" |
26 #include "components/prefs/pref_change_registrar.h" | 27 #include "components/prefs/pref_change_registrar.h" |
27 | 28 |
28 class ChromeChildProcessWatcher; | 29 class ChromeChildProcessWatcher; |
29 class ChromeDeviceClient; | 30 class ChromeDeviceClient; |
30 class ChromeResourceDispatcherHostDelegate; | 31 class ChromeResourceDispatcherHostDelegate; |
31 class DevToolsAutoOpener; | 32 class DevToolsAutoOpener; |
32 class RemoteDebuggingServer; | 33 class RemoteDebuggingServer; |
33 class PrefRegistrySimple; | 34 class PrefRegistrySimple; |
34 | 35 |
(...skipping 22 matching lines...) Expand all Loading... | |
57 class BrowserPolicyConnector; | 58 class BrowserPolicyConnector; |
58 class PolicyService; | 59 class PolicyService; |
59 }; | 60 }; |
60 | 61 |
61 namespace web_resource { | 62 namespace web_resource { |
62 class PromoResourceService; | 63 class PromoResourceService; |
63 } | 64 } |
64 | 65 |
65 // Real implementation of BrowserProcess that creates and returns the services. | 66 // Real implementation of BrowserProcess that creates and returns the services. |
66 class BrowserProcessImpl : public BrowserProcess, | 67 class BrowserProcessImpl : public BrowserProcess, |
67 public base::NonThreadSafe { | 68 public base::NonThreadSafe, |
69 public KeepAliveStateObserver { | |
68 public: | 70 public: |
69 // |local_state_task_runner| must be a shutdown-blocking task runner. | 71 // |local_state_task_runner| must be a shutdown-blocking task runner. |
70 BrowserProcessImpl(base::SequencedTaskRunner* local_state_task_runner, | 72 BrowserProcessImpl(base::SequencedTaskRunner* local_state_task_runner, |
71 const base::CommandLine& command_line); | 73 const base::CommandLine& command_line); |
72 ~BrowserProcessImpl() override; | 74 ~BrowserProcessImpl() override; |
73 | 75 |
74 // Called before the browser threads are created. | 76 // Called before the browser threads are created. |
75 void PreCreateThreads(); | 77 void PreCreateThreads(); |
76 | 78 |
77 // Called after the threads have been created but before the message loops | 79 // Called after the threads have been created but before the message loops |
(...skipping 29 matching lines...) Expand all Loading... | |
107 NotificationUIManager* notification_ui_manager() override; | 109 NotificationUIManager* notification_ui_manager() override; |
108 message_center::MessageCenter* message_center() override; | 110 message_center::MessageCenter* message_center() override; |
109 policy::BrowserPolicyConnector* browser_policy_connector() override; | 111 policy::BrowserPolicyConnector* browser_policy_connector() override; |
110 policy::PolicyService* policy_service() override; | 112 policy::PolicyService* policy_service() override; |
111 IconManager* icon_manager() override; | 113 IconManager* icon_manager() override; |
112 GLStringManager* gl_string_manager() override; | 114 GLStringManager* gl_string_manager() override; |
113 GpuModeManager* gpu_mode_manager() override; | 115 GpuModeManager* gpu_mode_manager() override; |
114 void CreateDevToolsHttpProtocolHandler(const std::string& ip, | 116 void CreateDevToolsHttpProtocolHandler(const std::string& ip, |
115 uint16_t port) override; | 117 uint16_t port) override; |
116 void CreateDevToolsAutoOpener() override; | 118 void CreateDevToolsAutoOpener() override; |
117 unsigned int AddRefModule() override; | |
118 unsigned int ReleaseModule() override; | |
119 bool IsShuttingDown() override; | 119 bool IsShuttingDown() override; |
120 printing::PrintJobManager* print_job_manager() override; | 120 printing::PrintJobManager* print_job_manager() override; |
121 printing::PrintPreviewDialogController* print_preview_dialog_controller() | 121 printing::PrintPreviewDialogController* print_preview_dialog_controller() |
122 override; | 122 override; |
123 printing::BackgroundPrintingManager* background_printing_manager() override; | 123 printing::BackgroundPrintingManager* background_printing_manager() override; |
124 IntranetRedirectDetector* intranet_redirect_detector() override; | 124 IntranetRedirectDetector* intranet_redirect_detector() override; |
125 const std::string& GetApplicationLocale() override; | 125 const std::string& GetApplicationLocale() override; |
126 void SetApplicationLocale(const std::string& locale) override; | 126 void SetApplicationLocale(const std::string& locale) override; |
127 DownloadStatusUpdater* download_status_updater() override; | 127 DownloadStatusUpdater* download_status_updater() override; |
128 DownloadRequestLimiter* download_request_limiter() override; | 128 DownloadRequestLimiter* download_request_limiter() override; |
(...skipping 23 matching lines...) Expand all Loading... | |
152 #endif | 152 #endif |
153 network_time::NetworkTimeTracker* network_time_tracker() override; | 153 network_time::NetworkTimeTracker* network_time_tracker() override; |
154 gcm::GCMDriver* gcm_driver() override; | 154 gcm::GCMDriver* gcm_driver() override; |
155 memory::TabManager* GetTabManager() override; | 155 memory::TabManager* GetTabManager() override; |
156 shell_integration::DefaultWebClientState CachedDefaultWebClientState() | 156 shell_integration::DefaultWebClientState CachedDefaultWebClientState() |
157 override; | 157 override; |
158 | 158 |
159 static void RegisterPrefs(PrefRegistrySimple* registry); | 159 static void RegisterPrefs(PrefRegistrySimple* registry); |
160 | 160 |
161 private: | 161 private: |
162 // KeepAliveStateObserver implementation | |
163 void OnKeepingAliveStateChanged(bool is_keeping_alive) override; | |
164 void OnKeepAliveRestartStateChanged(bool can_restart) override; | |
165 | |
162 void CreateWatchdogThread(); | 166 void CreateWatchdogThread(); |
163 void CreateProfileManager(); | 167 void CreateProfileManager(); |
164 void CreateLocalState(); | 168 void CreateLocalState(); |
165 void CreateViewedPageTracker(); | 169 void CreateViewedPageTracker(); |
166 void CreateIconManager(); | 170 void CreateIconManager(); |
167 void CreateIntranetRedirectDetector(); | 171 void CreateIntranetRedirectDetector(); |
168 void CreateNotificationUIManager(); | 172 void CreateNotificationUIManager(); |
169 void CreateStatusTrayManager(); | 173 void CreateStatusTrayManager(); |
170 void CreatePrintPreviewDialogController(); | 174 void CreatePrintPreviewDialogController(); |
171 void CreateBackgroundPrintingManager(); | 175 void CreateBackgroundPrintingManager(); |
172 void CreateSafeBrowsingService(); | 176 void CreateSafeBrowsingService(); |
173 void CreateSafeBrowsingDetectionService(); | 177 void CreateSafeBrowsingDetectionService(); |
174 void CreateStatusTray(); | 178 void CreateStatusTray(); |
175 void CreateBackgroundModeManager(); | 179 void CreateBackgroundModeManager(); |
176 void CreateGCMDriver(); | 180 void CreateGCMDriver(); |
177 | 181 |
178 void ApplyAllowCrossOriginAuthPromptPolicy(); | 182 void ApplyAllowCrossOriginAuthPromptPolicy(); |
179 void ApplyDefaultBrowserPolicy(); | 183 void ApplyDefaultBrowserPolicy(); |
180 void ApplyMetricsReportingPolicy(); | 184 void ApplyMetricsReportingPolicy(); |
181 | 185 |
182 void CacheDefaultWebClientState(); | 186 void CacheDefaultWebClientState(); |
183 | 187 |
188 // Methods called to control our lifetime. The browser process can be "pinned" | |
189 // to make sure it keeps running. | |
190 void Pin(); | |
sky
2016/03/17 00:02:24
Move implementation to match new position.
dgn
2016/03/17 10:00:09
Done.
| |
191 void Unpin(); | |
192 | |
184 scoped_ptr<metrics_services_manager::MetricsServicesManager> | 193 scoped_ptr<metrics_services_manager::MetricsServicesManager> |
185 metrics_services_manager_; | 194 metrics_services_manager_; |
186 | 195 |
187 scoped_ptr<IOThread> io_thread_; | 196 scoped_ptr<IOThread> io_thread_; |
188 | 197 |
189 bool created_watchdog_thread_; | 198 bool created_watchdog_thread_; |
190 scoped_ptr<WatchDogThread> watchdog_thread_; | 199 scoped_ptr<WatchDogThread> watchdog_thread_; |
191 | 200 |
192 bool created_browser_policy_connector_; | 201 bool created_browser_policy_connector_; |
193 // Must be destroyed after |local_state_|. | 202 // Must be destroyed after |local_state_|. |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
235 | 244 |
236 scoped_ptr<StatusTray> status_tray_; | 245 scoped_ptr<StatusTray> status_tray_; |
237 | 246 |
238 #if BUILDFLAG(ENABLE_BACKGROUND) | 247 #if BUILDFLAG(ENABLE_BACKGROUND) |
239 scoped_ptr<BackgroundModeManager> background_mode_manager_; | 248 scoped_ptr<BackgroundModeManager> background_mode_manager_; |
240 #endif | 249 #endif |
241 | 250 |
242 bool created_safe_browsing_service_; | 251 bool created_safe_browsing_service_; |
243 scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service_; | 252 scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service_; |
244 | 253 |
245 unsigned int module_ref_count_; | 254 bool shutting_down_; |
246 bool did_start_; | |
247 | 255 |
248 bool tearing_down_; | 256 bool tearing_down_; |
249 | 257 |
250 // Ensures that all the print jobs are finished before closing the browser. | 258 // Ensures that all the print jobs are finished before closing the browser. |
251 scoped_ptr<printing::PrintJobManager> print_job_manager_; | 259 scoped_ptr<printing::PrintJobManager> print_job_manager_; |
252 | 260 |
253 std::string locale_; | 261 std::string locale_; |
254 | 262 |
255 // Download status updates (like a changing application icon on dock/taskbar) | 263 // Download status updates (like a changing application icon on dock/taskbar) |
256 // are global per-application. DownloadStatusUpdater does no work in the ctor | 264 // are global per-application. DownloadStatusUpdater does no work in the ctor |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
326 // chrome/browser/memory/tab_manager_browsertest.cc | 334 // chrome/browser/memory/tab_manager_browsertest.cc |
327 scoped_ptr<memory::TabManager> tab_manager_; | 335 scoped_ptr<memory::TabManager> tab_manager_; |
328 #endif | 336 #endif |
329 | 337 |
330 shell_integration::DefaultWebClientState cached_default_web_client_state_; | 338 shell_integration::DefaultWebClientState cached_default_web_client_state_; |
331 | 339 |
332 DISALLOW_COPY_AND_ASSIGN(BrowserProcessImpl); | 340 DISALLOW_COPY_AND_ASSIGN(BrowserProcessImpl); |
333 }; | 341 }; |
334 | 342 |
335 #endif // CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ | 343 #endif // CHROME_BROWSER_BROWSER_PROCESS_IMPL_H_ |
OLD | NEW |