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 #include "chrome/browser/browser_process_impl.h" | 5 #include "chrome/browser/browser_process_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "chrome/browser/chrome_content_browser_client.h" | 30 #include "chrome/browser/chrome_content_browser_client.h" |
31 #include "chrome/browser/chrome_notification_types.h" | 31 #include "chrome/browser/chrome_notification_types.h" |
32 #include "chrome/browser/component_updater/component_updater_configurator.h" | 32 #include "chrome/browser/component_updater/component_updater_configurator.h" |
33 #include "chrome/browser/component_updater/component_updater_service.h" | 33 #include "chrome/browser/component_updater/component_updater_service.h" |
34 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" | 34 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" |
35 #include "chrome/browser/defaults.h" | 35 #include "chrome/browser/defaults.h" |
36 #include "chrome/browser/devtools/remote_debugging_server.h" | 36 #include "chrome/browser/devtools/remote_debugging_server.h" |
37 #include "chrome/browser/download/download_request_limiter.h" | 37 #include "chrome/browser/download/download_request_limiter.h" |
38 #include "chrome/browser/download/download_status_updater.h" | 38 #include "chrome/browser/download/download_status_updater.h" |
39 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" | 39 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" |
40 #include "chrome/browser/extensions/event_router_forwarder.h" | |
41 #include "chrome/browser/extensions/extension_renderer_state.h" | |
42 #include "chrome/browser/first_run/upgrade_util.h" | 40 #include "chrome/browser/first_run/upgrade_util.h" |
43 #include "chrome/browser/gpu/gl_string_manager.h" | 41 #include "chrome/browser/gpu/gl_string_manager.h" |
44 #include "chrome/browser/gpu/gpu_mode_manager.h" | 42 #include "chrome/browser/gpu/gpu_mode_manager.h" |
45 #include "chrome/browser/icon_manager.h" | 43 #include "chrome/browser/icon_manager.h" |
46 #include "chrome/browser/idle.h" | 44 #include "chrome/browser/idle.h" |
47 #include "chrome/browser/intranet_redirect_detector.h" | 45 #include "chrome/browser/intranet_redirect_detector.h" |
48 #include "chrome/browser/io_thread.h" | 46 #include "chrome/browser/io_thread.h" |
49 #include "chrome/browser/lifetime/application_lifetime.h" | 47 #include "chrome/browser/lifetime/application_lifetime.h" |
50 #include "chrome/browser/metrics/metrics_services_manager.h" | 48 #include "chrome/browser/metrics/metrics_services_manager.h" |
51 #include "chrome/browser/metrics/thread_watcher.h" | 49 #include "chrome/browser/metrics/thread_watcher.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 #include "chrome/browser/chrome_browser_main_mac.h" | 105 #include "chrome/browser/chrome_browser_main_mac.h" |
108 #endif | 106 #endif |
109 | 107 |
110 #if defined(OS_ANDROID) | 108 #if defined(OS_ANDROID) |
111 #include "components/gcm_driver/gcm_driver_android.h" | 109 #include "components/gcm_driver/gcm_driver_android.h" |
112 #else | 110 #else |
113 #include "chrome/browser/services/gcm/gcm_desktop_utils.h" | 111 #include "chrome/browser/services/gcm/gcm_desktop_utils.h" |
114 #include "components/gcm_driver/gcm_client_factory.h" | 112 #include "components/gcm_driver/gcm_client_factory.h" |
115 #endif | 113 #endif |
116 | 114 |
117 #if !defined(OS_ANDROID) && !defined(OS_IOS) | |
118 #include "chrome/browser/media_galleries/media_file_system_registry.h" | |
119 #include "components/storage_monitor/storage_monitor.h" | |
120 #endif | |
121 | |
122 #if defined(USE_AURA) | 115 #if defined(USE_AURA) |
123 #include "ui/aura/env.h" | 116 #include "ui/aura/env.h" |
124 #endif | 117 #endif |
125 | 118 |
126 #if defined(ENABLE_CONFIGURATION_POLICY) | 119 #if defined(ENABLE_CONFIGURATION_POLICY) |
127 #include "components/policy/core/browser/browser_policy_connector.h" | 120 #include "components/policy/core/browser/browser_policy_connector.h" |
128 #else | 121 #else |
129 #include "components/policy/core/common/policy_service_stub.h" | 122 #include "components/policy/core/common/policy_service_stub.h" |
130 #endif // defined(ENABLE_CONFIGURATION_POLICY) | 123 #endif // defined(ENABLE_CONFIGURATION_POLICY) |
131 | 124 |
| 125 #if defined(ENABLE_EXTENSIONS) |
| 126 #include "chrome/browser/extensions/event_router_forwarder.h" |
| 127 #include "chrome/browser/extensions/extension_renderer_state.h" |
| 128 #include "chrome/browser/media_galleries/media_file_system_registry.h" |
| 129 #include "components/storage_monitor/storage_monitor.h" |
| 130 #endif |
| 131 |
132 #if defined(ENABLE_PLUGIN_INSTALLATION) | 132 #if defined(ENABLE_PLUGIN_INSTALLATION) |
133 #include "chrome/browser/plugins/plugins_resource_service.h" | 133 #include "chrome/browser/plugins/plugins_resource_service.h" |
134 #endif | 134 #endif |
135 | 135 |
136 #if defined(ENABLE_WEBRTC) | 136 #if defined(ENABLE_WEBRTC) |
137 #include "chrome/browser/media/webrtc_log_uploader.h" | 137 #include "chrome/browser/media/webrtc_log_uploader.h" |
138 #endif | 138 #endif |
139 | 139 |
140 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 140 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
141 // How often to check if the persistent instance of Chrome needs to restart | 141 // How often to check if the persistent instance of Chrome needs to restart |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 extensions::kExtensionResourceScheme); | 186 extensions::kExtensionResourceScheme); |
187 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( | 187 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( |
188 chrome::kChromeSearchScheme); | 188 chrome::kChromeSearchScheme); |
189 | 189 |
190 #if defined(OS_MACOSX) | 190 #if defined(OS_MACOSX) |
191 InitIdleMonitor(); | 191 InitIdleMonitor(); |
192 #endif | 192 #endif |
193 | 193 |
194 #if defined(ENABLE_EXTENSIONS) | 194 #if defined(ENABLE_EXTENSIONS) |
195 apps::AppsClient::Set(ChromeAppsClient::GetInstance()); | 195 apps::AppsClient::Set(ChromeAppsClient::GetInstance()); |
| 196 |
| 197 extension_event_router_forwarder_ = new extensions::EventRouterForwarder; |
| 198 ExtensionRendererState::GetInstance()->Init(); |
196 #endif | 199 #endif |
197 | 200 |
198 extensions::ExtensionsClient::Set( | 201 extensions::ExtensionsClient::Set( |
199 extensions::ChromeExtensionsClient::GetInstance()); | 202 extensions::ChromeExtensionsClient::GetInstance()); |
200 | 203 |
201 extensions_browser_client_.reset( | 204 extensions_browser_client_.reset( |
202 new extensions::ChromeExtensionsBrowserClient); | 205 new extensions::ChromeExtensionsBrowserClient); |
203 extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); | 206 extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
204 | 207 |
205 extension_event_router_forwarder_ = new extensions::EventRouterForwarder; | |
206 ExtensionRendererState::GetInstance()->Init(); | |
207 | |
208 message_center::MessageCenter::Initialize(); | 208 message_center::MessageCenter::Initialize(); |
209 | 209 |
210 omaha_query_params::OmahaQueryParams::SetDelegate( | 210 omaha_query_params::OmahaQueryParams::SetDelegate( |
211 ChromeOmahaQueryParamsDelegate::GetInstance()); | 211 ChromeOmahaQueryParamsDelegate::GetInstance()); |
212 } | 212 } |
213 | 213 |
214 BrowserProcessImpl::~BrowserProcessImpl() { | 214 BrowserProcessImpl::~BrowserProcessImpl() { |
215 tracked_objects::ThreadData::EnsureCleanupWasCalled(4); | 215 tracked_objects::ThreadData::EnsureCleanupWasCalled(4); |
216 | 216 |
217 g_browser_process = NULL; | 217 g_browser_process = NULL; |
(...skipping 28 matching lines...) Expand all Loading... |
246 if (switches::IsNewProfileManagement()) | 246 if (switches::IsNewProfileManagement()) |
247 chrome::HideUserManager(); | 247 chrome::HideUserManager(); |
248 profile_manager_.reset(); | 248 profile_manager_.reset(); |
249 } | 249 } |
250 | 250 |
251 #if !defined(OS_ANDROID) | 251 #if !defined(OS_ANDROID) |
252 // Debugger must be cleaned up before IO thread and NotificationService. | 252 // Debugger must be cleaned up before IO thread and NotificationService. |
253 remote_debugging_server_.reset(); | 253 remote_debugging_server_.reset(); |
254 #endif | 254 #endif |
255 | 255 |
| 256 #if defined(ENABLE_EXTENSIONS) |
256 ExtensionRendererState::GetInstance()->Shutdown(); | 257 ExtensionRendererState::GetInstance()->Shutdown(); |
257 | 258 |
258 #if !defined(OS_ANDROID) && !defined(OS_IOS) | |
259 media_file_system_registry_.reset(); | 259 media_file_system_registry_.reset(); |
260 // Remove the global instance of the Storage Monitor now. Otherwise the | 260 // Remove the global instance of the Storage Monitor now. Otherwise the |
261 // FILE thread would be gone when we try to release it in the dtor and | 261 // FILE thread would be gone when we try to release it in the dtor and |
262 // Valgrind would report a leak on almost every single browser_test. | 262 // Valgrind would report a leak on almost every single browser_test. |
263 // TODO(gbillock): Make this unnecessary. | 263 // TODO(gbillock): Make this unnecessary. |
264 storage_monitor::StorageMonitor::Destroy(); | 264 storage_monitor::StorageMonitor::Destroy(); |
265 #endif | 265 #endif |
266 | 266 |
267 message_center::MessageCenter::Shutdown(); | 267 message_center::MessageCenter::Shutdown(); |
268 | 268 |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 DCHECK(CalledOnValidThread()); | 577 DCHECK(CalledOnValidThread()); |
578 return GetMetricsServicesManager()->GetVariationsService(); | 578 return GetMetricsServicesManager()->GetVariationsService(); |
579 } | 579 } |
580 | 580 |
581 BrowserProcessPlatformPart* BrowserProcessImpl::platform_part() { | 581 BrowserProcessPlatformPart* BrowserProcessImpl::platform_part() { |
582 return platform_part_.get(); | 582 return platform_part_.get(); |
583 } | 583 } |
584 | 584 |
585 extensions::EventRouterForwarder* | 585 extensions::EventRouterForwarder* |
586 BrowserProcessImpl::extension_event_router_forwarder() { | 586 BrowserProcessImpl::extension_event_router_forwarder() { |
| 587 #if defined(ENABLE_EXTENSIONS) |
587 return extension_event_router_forwarder_.get(); | 588 return extension_event_router_forwarder_.get(); |
| 589 #else |
| 590 return NULL; |
| 591 #endif |
588 } | 592 } |
589 | 593 |
590 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { | 594 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { |
591 DCHECK(CalledOnValidThread()); | 595 DCHECK(CalledOnValidThread()); |
592 if (!created_notification_ui_manager_) | 596 if (!created_notification_ui_manager_) |
593 CreateNotificationUIManager(); | 597 CreateNotificationUIManager(); |
594 return notification_ui_manager_.get(); | 598 return notification_ui_manager_.get(); |
595 } | 599 } |
596 | 600 |
597 message_center::MessageCenter* BrowserProcessImpl::message_center() { | 601 message_center::MessageCenter* BrowserProcessImpl::message_center() { |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
712 extension_l10n_util::SetProcessLocale(locale); | 716 extension_l10n_util::SetProcessLocale(locale); |
713 chrome::ChromeContentBrowserClient::SetApplicationLocale(locale); | 717 chrome::ChromeContentBrowserClient::SetApplicationLocale(locale); |
714 TranslateDownloadManager::GetInstance()->set_application_locale(locale); | 718 TranslateDownloadManager::GetInstance()->set_application_locale(locale); |
715 } | 719 } |
716 | 720 |
717 DownloadStatusUpdater* BrowserProcessImpl::download_status_updater() { | 721 DownloadStatusUpdater* BrowserProcessImpl::download_status_updater() { |
718 return download_status_updater_.get(); | 722 return download_status_updater_.get(); |
719 } | 723 } |
720 | 724 |
721 MediaFileSystemRegistry* BrowserProcessImpl::media_file_system_registry() { | 725 MediaFileSystemRegistry* BrowserProcessImpl::media_file_system_registry() { |
722 #if defined(OS_ANDROID) || defined(OS_IOS) | 726 #if defined(ENABLE_EXTENSIONS) |
723 return NULL; | |
724 #else | |
725 if (!media_file_system_registry_) | 727 if (!media_file_system_registry_) |
726 media_file_system_registry_.reset(new MediaFileSystemRegistry()); | 728 media_file_system_registry_.reset(new MediaFileSystemRegistry()); |
727 return media_file_system_registry_.get(); | 729 return media_file_system_registry_.get(); |
| 730 #else |
| 731 return NULL; |
728 #endif | 732 #endif |
729 } | 733 } |
730 | 734 |
731 bool BrowserProcessImpl::created_local_state() const { | 735 bool BrowserProcessImpl::created_local_state() const { |
732 return created_local_state_; | 736 return created_local_state_; |
733 } | 737 } |
734 | 738 |
735 #if defined(ENABLE_WEBRTC) | 739 #if defined(ENABLE_WEBRTC) |
736 WebRtcLogUploader* BrowserProcessImpl::webrtc_log_uploader() { | 740 WebRtcLogUploader* BrowserProcessImpl::webrtc_log_uploader() { |
737 if (!webrtc_log_uploader_.get()) | 741 if (!webrtc_log_uploader_.get()) |
738 webrtc_log_uploader_.reset(new WebRtcLogUploader()); | 742 webrtc_log_uploader_.reset(new WebRtcLogUploader()); |
739 return webrtc_log_uploader_.get(); | 743 return webrtc_log_uploader_.get(); |
740 } | 744 } |
741 #endif | 745 #endif |
742 | 746 |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
970 | 974 |
971 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); | 975 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); |
972 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( | 976 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( |
973 net::HttpNetworkSession::NORMAL_SOCKET_POOL, | 977 net::HttpNetworkSession::NORMAL_SOCKET_POOL, |
974 std::max(std::min(max_per_proxy, 99), | 978 std::max(std::min(max_per_proxy, 99), |
975 net::ClientSocketPoolManager::max_sockets_per_group( | 979 net::ClientSocketPoolManager::max_sockets_per_group( |
976 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); | 980 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); |
977 } | 981 } |
978 | 982 |
979 void BrowserProcessImpl::PreCreateThreads() { | 983 void BrowserProcessImpl::PreCreateThreads() { |
980 io_thread_.reset(new IOThread(local_state(), policy_service(), net_log_.get(), | 984 io_thread_.reset( |
981 extension_event_router_forwarder_.get())); | 985 new IOThread(local_state(), policy_service(), net_log_.get(), |
| 986 extension_event_router_forwarder())); |
982 } | 987 } |
983 | 988 |
984 void BrowserProcessImpl::PreMainMessageLoopRun() { | 989 void BrowserProcessImpl::PreMainMessageLoopRun() { |
985 #if defined(ENABLE_CONFIGURATION_POLICY) | 990 #if defined(ENABLE_CONFIGURATION_POLICY) |
986 // browser_policy_connector() is created very early because local_state() | 991 // browser_policy_connector() is created very early because local_state() |
987 // needs policy to be initialized with the managed preference values. | 992 // needs policy to be initialized with the managed preference values. |
988 // However, policy fetches from the network and loading of disk caches | 993 // However, policy fetches from the network and loading of disk caches |
989 // requires that threads are running; this Init() call lets the connector | 994 // requires that threads are running; this Init() call lets the connector |
990 // resume its initialization now that the loops are spinning and the | 995 // resume its initialization now that the loops are spinning and the |
991 // system request context is available for the fetchers. | 996 // system request context is available for the fetchers. |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 } | 1200 } |
1196 | 1201 |
1197 void BrowserProcessImpl::OnAutoupdateTimer() { | 1202 void BrowserProcessImpl::OnAutoupdateTimer() { |
1198 if (CanAutorestartForUpdate()) { | 1203 if (CanAutorestartForUpdate()) { |
1199 DLOG(WARNING) << "Detected update. Restarting browser."; | 1204 DLOG(WARNING) << "Detected update. Restarting browser."; |
1200 RestartBackgroundInstance(); | 1205 RestartBackgroundInstance(); |
1201 } | 1206 } |
1202 } | 1207 } |
1203 | 1208 |
1204 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 1209 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
OLD | NEW |