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 18 matching lines...) Expand all Loading... | |
29 #include "chrome/browser/chrome_content_browser_client.h" | 29 #include "chrome/browser/chrome_content_browser_client.h" |
30 #include "chrome/browser/chrome_notification_types.h" | 30 #include "chrome/browser/chrome_notification_types.h" |
31 #include "chrome/browser/component_updater/component_updater_configurator.h" | 31 #include "chrome/browser/component_updater/component_updater_configurator.h" |
32 #include "chrome/browser/component_updater/component_updater_service.h" | 32 #include "chrome/browser/component_updater/component_updater_service.h" |
33 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" | 33 #include "chrome/browser/component_updater/pnacl/pnacl_component_installer.h" |
34 #include "chrome/browser/defaults.h" | 34 #include "chrome/browser/defaults.h" |
35 #include "chrome/browser/devtools/remote_debugging_server.h" | 35 #include "chrome/browser/devtools/remote_debugging_server.h" |
36 #include "chrome/browser/download/download_request_limiter.h" | 36 #include "chrome/browser/download/download_request_limiter.h" |
37 #include "chrome/browser/download/download_status_updater.h" | 37 #include "chrome/browser/download/download_status_updater.h" |
38 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" | 38 #include "chrome/browser/extensions/chrome_extensions_browser_client.h" |
39 #include "chrome/browser/extensions/event_router_forwarder.h" | |
40 #include "chrome/browser/extensions/extension_renderer_state.h" | |
41 #include "chrome/browser/first_run/upgrade_util.h" | 39 #include "chrome/browser/first_run/upgrade_util.h" |
42 #include "chrome/browser/gpu/gl_string_manager.h" | 40 #include "chrome/browser/gpu/gl_string_manager.h" |
43 #include "chrome/browser/gpu/gpu_mode_manager.h" | 41 #include "chrome/browser/gpu/gpu_mode_manager.h" |
44 #include "chrome/browser/icon_manager.h" | 42 #include "chrome/browser/icon_manager.h" |
45 #include "chrome/browser/idle.h" | 43 #include "chrome/browser/idle.h" |
46 #include "chrome/browser/intranet_redirect_detector.h" | 44 #include "chrome/browser/intranet_redirect_detector.h" |
47 #include "chrome/browser/io_thread.h" | 45 #include "chrome/browser/io_thread.h" |
48 #include "chrome/browser/lifetime/application_lifetime.h" | 46 #include "chrome/browser/lifetime/application_lifetime.h" |
49 #include "chrome/browser/metrics/metrics_services_manager.h" | 47 #include "chrome/browser/metrics/metrics_services_manager.h" |
50 #include "chrome/browser/metrics/thread_watcher.h" | 48 #include "chrome/browser/metrics/thread_watcher.h" |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
106 #include "chrome/browser/chrome_browser_main_mac.h" | 104 #include "chrome/browser/chrome_browser_main_mac.h" |
107 #endif | 105 #endif |
108 | 106 |
109 #if defined(OS_ANDROID) | 107 #if defined(OS_ANDROID) |
110 #include "components/gcm_driver/gcm_driver_android.h" | 108 #include "components/gcm_driver/gcm_driver_android.h" |
111 #else | 109 #else |
112 #include "chrome/browser/services/gcm/gcm_desktop_utils.h" | 110 #include "chrome/browser/services/gcm/gcm_desktop_utils.h" |
113 #include "components/gcm_driver/gcm_client_factory.h" | 111 #include "components/gcm_driver/gcm_client_factory.h" |
114 #endif | 112 #endif |
115 | 113 |
116 #if !defined(OS_ANDROID) && !defined(OS_IOS) | |
117 #include "chrome/browser/media_galleries/media_file_system_registry.h" | |
118 #include "components/storage_monitor/storage_monitor.h" | |
119 #endif | |
120 | |
121 #if defined(USE_AURA) | 114 #if defined(USE_AURA) |
122 #include "ui/aura/env.h" | 115 #include "ui/aura/env.h" |
123 #endif | 116 #endif |
124 | 117 |
125 #if defined(ENABLE_CONFIGURATION_POLICY) | 118 #if defined(ENABLE_CONFIGURATION_POLICY) |
126 #include "components/policy/core/browser/browser_policy_connector.h" | 119 #include "components/policy/core/browser/browser_policy_connector.h" |
127 #else | 120 #else |
128 #include "components/policy/core/common/policy_service_stub.h" | 121 #include "components/policy/core/common/policy_service_stub.h" |
129 #endif // defined(ENABLE_CONFIGURATION_POLICY) | 122 #endif // defined(ENABLE_CONFIGURATION_POLICY) |
130 | 123 |
124 #if defined(ENABLE_EXTENSIONS) | |
125 #include "chrome/browser/extensions/event_router_forwarder.h" | |
126 #include "chrome/browser/extensions/extension_renderer_state.h" | |
127 #include "chrome/browser/media_galleries/media_file_system_registry.h" | |
128 #include "components/storage_monitor/storage_monitor.h" | |
129 #endif | |
130 | |
131 #if defined(ENABLE_PLUGIN_INSTALLATION) | 131 #if defined(ENABLE_PLUGIN_INSTALLATION) |
132 #include "chrome/browser/plugins/plugins_resource_service.h" | 132 #include "chrome/browser/plugins/plugins_resource_service.h" |
133 #endif | 133 #endif |
134 | 134 |
135 #if defined(ENABLE_WEBRTC) | 135 #if defined(ENABLE_WEBRTC) |
136 #include "chrome/browser/media/webrtc_log_uploader.h" | 136 #include "chrome/browser/media/webrtc_log_uploader.h" |
137 #endif | 137 #endif |
138 | 138 |
139 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 139 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
140 // How often to check if the persistent instance of Chrome needs to restart | 140 // 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... | |
185 extensions::kExtensionResourceScheme); | 185 extensions::kExtensionResourceScheme); |
186 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( | 186 ChildProcessSecurityPolicy::GetInstance()->RegisterWebSafeScheme( |
187 chrome::kChromeSearchScheme); | 187 chrome::kChromeSearchScheme); |
188 | 188 |
189 #if defined(OS_MACOSX) | 189 #if defined(OS_MACOSX) |
190 InitIdleMonitor(); | 190 InitIdleMonitor(); |
191 #endif | 191 #endif |
192 | 192 |
193 #if defined(ENABLE_EXTENSIONS) | 193 #if defined(ENABLE_EXTENSIONS) |
194 apps::AppsClient::Set(ChromeAppsClient::GetInstance()); | 194 apps::AppsClient::Set(ChromeAppsClient::GetInstance()); |
195 | |
196 extension_event_router_forwarder_ = new extensions::EventRouterForwarder; | |
197 ExtensionRendererState::GetInstance()->Init(); | |
Ryan Sleevi
2014/07/16 20:23:43
What are the implications now with respect to star
Lei Zhang
2014/07/18 01:34:24
I believe this to be ok, but I can loop in someone
| |
195 #endif | 198 #endif |
196 | 199 |
197 extensions::ExtensionsClient::Set( | 200 extensions::ExtensionsClient::Set( |
198 extensions::ChromeExtensionsClient::GetInstance()); | 201 extensions::ChromeExtensionsClient::GetInstance()); |
199 | 202 |
200 extensions_browser_client_.reset( | 203 extensions_browser_client_.reset( |
201 new extensions::ChromeExtensionsBrowserClient); | 204 new extensions::ChromeExtensionsBrowserClient); |
202 extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); | 205 extensions::ExtensionsBrowserClient::Set(extensions_browser_client_.get()); |
203 | 206 |
204 extension_event_router_forwarder_ = new extensions::EventRouterForwarder; | |
205 ExtensionRendererState::GetInstance()->Init(); | |
206 | |
207 message_center::MessageCenter::Initialize(); | 207 message_center::MessageCenter::Initialize(); |
208 | 208 |
209 omaha_query_params::OmahaQueryParams::SetDelegate( | 209 omaha_query_params::OmahaQueryParams::SetDelegate( |
210 ChromeOmahaQueryParamsDelegate::GetInstance()); | 210 ChromeOmahaQueryParamsDelegate::GetInstance()); |
211 } | 211 } |
212 | 212 |
213 BrowserProcessImpl::~BrowserProcessImpl() { | 213 BrowserProcessImpl::~BrowserProcessImpl() { |
214 tracked_objects::ThreadData::EnsureCleanupWasCalled(4); | 214 tracked_objects::ThreadData::EnsureCleanupWasCalled(4); |
215 | 215 |
216 g_browser_process = NULL; | 216 g_browser_process = NULL; |
(...skipping 28 matching lines...) Expand all Loading... | |
245 if (switches::IsNewProfileManagement()) | 245 if (switches::IsNewProfileManagement()) |
246 chrome::HideUserManager(); | 246 chrome::HideUserManager(); |
247 profile_manager_.reset(); | 247 profile_manager_.reset(); |
248 } | 248 } |
249 | 249 |
250 #if !defined(OS_ANDROID) | 250 #if !defined(OS_ANDROID) |
251 // Debugger must be cleaned up before IO thread and NotificationService. | 251 // Debugger must be cleaned up before IO thread and NotificationService. |
252 remote_debugging_server_.reset(); | 252 remote_debugging_server_.reset(); |
253 #endif | 253 #endif |
254 | 254 |
255 #if defined(ENABLE_EXTENSIONS) | |
255 ExtensionRendererState::GetInstance()->Shutdown(); | 256 ExtensionRendererState::GetInstance()->Shutdown(); |
256 | 257 |
257 #if !defined(OS_ANDROID) && !defined(OS_IOS) | |
258 media_file_system_registry_.reset(); | 258 media_file_system_registry_.reset(); |
259 // Remove the global instance of the Storage Monitor now. Otherwise the | 259 // Remove the global instance of the Storage Monitor now. Otherwise the |
260 // FILE thread would be gone when we try to release it in the dtor and | 260 // FILE thread would be gone when we try to release it in the dtor and |
261 // Valgrind would report a leak on almost every single browser_test. | 261 // Valgrind would report a leak on almost every single browser_test. |
262 // TODO(gbillock): Make this unnecessary. | 262 // TODO(gbillock): Make this unnecessary. |
263 storage_monitor::StorageMonitor::Destroy(); | 263 storage_monitor::StorageMonitor::Destroy(); |
264 #endif | 264 #endif |
265 | 265 |
266 message_center::MessageCenter::Shutdown(); | 266 message_center::MessageCenter::Shutdown(); |
267 | 267 |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
553 DCHECK(CalledOnValidThread()); | 553 DCHECK(CalledOnValidThread()); |
554 return GetMetricsServicesManager()->GetVariationsService(); | 554 return GetMetricsServicesManager()->GetVariationsService(); |
555 } | 555 } |
556 | 556 |
557 BrowserProcessPlatformPart* BrowserProcessImpl::platform_part() { | 557 BrowserProcessPlatformPart* BrowserProcessImpl::platform_part() { |
558 return platform_part_.get(); | 558 return platform_part_.get(); |
559 } | 559 } |
560 | 560 |
561 extensions::EventRouterForwarder* | 561 extensions::EventRouterForwarder* |
562 BrowserProcessImpl::extension_event_router_forwarder() { | 562 BrowserProcessImpl::extension_event_router_forwarder() { |
563 #if defined(ENABLE_EXTENSIONS) | |
563 return extension_event_router_forwarder_.get(); | 564 return extension_event_router_forwarder_.get(); |
565 #else | |
566 return NULL; | |
567 #endif | |
564 } | 568 } |
565 | 569 |
566 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { | 570 NotificationUIManager* BrowserProcessImpl::notification_ui_manager() { |
567 DCHECK(CalledOnValidThread()); | 571 DCHECK(CalledOnValidThread()); |
568 if (!created_notification_ui_manager_) | 572 if (!created_notification_ui_manager_) |
569 CreateNotificationUIManager(); | 573 CreateNotificationUIManager(); |
570 return notification_ui_manager_.get(); | 574 return notification_ui_manager_.get(); |
571 } | 575 } |
572 | 576 |
573 message_center::MessageCenter* BrowserProcessImpl::message_center() { | 577 message_center::MessageCenter* BrowserProcessImpl::message_center() { |
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
946 | 950 |
947 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); | 951 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); |
948 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( | 952 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( |
949 net::HttpNetworkSession::NORMAL_SOCKET_POOL, | 953 net::HttpNetworkSession::NORMAL_SOCKET_POOL, |
950 std::max(std::min(max_per_proxy, 99), | 954 std::max(std::min(max_per_proxy, 99), |
951 net::ClientSocketPoolManager::max_sockets_per_group( | 955 net::ClientSocketPoolManager::max_sockets_per_group( |
952 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); | 956 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); |
953 } | 957 } |
954 | 958 |
955 void BrowserProcessImpl::PreCreateThreads() { | 959 void BrowserProcessImpl::PreCreateThreads() { |
956 io_thread_.reset(new IOThread(local_state(), policy_service(), net_log_.get(), | 960 io_thread_.reset( |
957 extension_event_router_forwarder_.get())); | 961 new IOThread(local_state(), policy_service(), net_log_.get(), |
962 #if defined(ENABLE_EXTENSIONS) | |
963 extension_event_router_forwarder_.get() | |
964 #else | |
965 NULL | |
966 #endif | |
Ryan Sleevi
2014/07/16 20:23:43
Prefer to stuff this in a member variable (wrapped
Lei Zhang
2014/07/18 01:34:24
Done.
| |
967 )); // NOLINT | |
958 } | 968 } |
959 | 969 |
960 void BrowserProcessImpl::PreMainMessageLoopRun() { | 970 void BrowserProcessImpl::PreMainMessageLoopRun() { |
961 #if defined(ENABLE_CONFIGURATION_POLICY) | 971 #if defined(ENABLE_CONFIGURATION_POLICY) |
962 // browser_policy_connector() is created very early because local_state() | 972 // browser_policy_connector() is created very early because local_state() |
963 // needs policy to be initialized with the managed preference values. | 973 // needs policy to be initialized with the managed preference values. |
964 // However, policy fetches from the network and loading of disk caches | 974 // However, policy fetches from the network and loading of disk caches |
965 // requires that threads are running; this Init() call lets the connector | 975 // requires that threads are running; this Init() call lets the connector |
966 // resume its initialization now that the loops are spinning and the | 976 // resume its initialization now that the loops are spinning and the |
967 // system request context is available for the fetchers. | 977 // system request context is available for the fetchers. |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1171 } | 1181 } |
1172 | 1182 |
1173 void BrowserProcessImpl::OnAutoupdateTimer() { | 1183 void BrowserProcessImpl::OnAutoupdateTimer() { |
1174 if (CanAutorestartForUpdate()) { | 1184 if (CanAutorestartForUpdate()) { |
1175 DLOG(WARNING) << "Detected update. Restarting browser."; | 1185 DLOG(WARNING) << "Detected update. Restarting browser."; |
1176 RestartBackgroundInstance(); | 1186 RestartBackgroundInstance(); |
1177 } | 1187 } |
1178 } | 1188 } |
1179 | 1189 |
1180 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 1190 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
OLD | NEW |