| 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 |