Chromium Code Reviews| 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 |