| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #include "chrome/browser/first_run/upgrade_util.h" | 31 #include "chrome/browser/first_run/upgrade_util.h" |
| 32 #include "chrome/browser/google/google_url_tracker.h" | 32 #include "chrome/browser/google/google_url_tracker.h" |
| 33 #include "chrome/browser/icon_manager.h" | 33 #include "chrome/browser/icon_manager.h" |
| 34 #include "chrome/browser/intranet_redirect_detector.h" | 34 #include "chrome/browser/intranet_redirect_detector.h" |
| 35 #include "chrome/browser/io_thread.h" | 35 #include "chrome/browser/io_thread.h" |
| 36 #include "chrome/browser/metrics/metrics_service.h" | 36 #include "chrome/browser/metrics/metrics_service.h" |
| 37 #include "chrome/browser/metrics/thread_watcher.h" | 37 #include "chrome/browser/metrics/thread_watcher.h" |
| 38 #include "chrome/browser/net/chrome_net_log.h" | 38 #include "chrome/browser/net/chrome_net_log.h" |
| 39 #include "chrome/browser/net/predictor_api.h" | 39 #include "chrome/browser/net/predictor_api.h" |
| 40 #include "chrome/browser/net/sdch_dictionary_fetcher.h" | 40 #include "chrome/browser/net/sdch_dictionary_fetcher.h" |
| 41 #include "chrome/browser/net/spdy_config_service_manager.h" |
| 41 #include "chrome/browser/notifications/notification_ui_manager.h" | 42 #include "chrome/browser/notifications/notification_ui_manager.h" |
| 42 #include "chrome/browser/policy/browser_policy_connector.h" | 43 #include "chrome/browser/policy/browser_policy_connector.h" |
| 43 #include "chrome/browser/prefs/browser_prefs.h" | 44 #include "chrome/browser/prefs/browser_prefs.h" |
| 44 #include "chrome/browser/prefs/pref_service.h" | 45 #include "chrome/browser/prefs/pref_service.h" |
| 45 #include "chrome/browser/prerender/prerender_tracker.h" | 46 #include "chrome/browser/prerender/prerender_tracker.h" |
| 46 #include "chrome/browser/printing/background_printing_manager.h" | 47 #include "chrome/browser/printing/background_printing_manager.h" |
| 47 #include "chrome/browser/printing/print_job_manager.h" | 48 #include "chrome/browser/printing/print_job_manager.h" |
| 48 #include "chrome/browser/printing/print_preview_tab_controller.h" | 49 #include "chrome/browser/printing/print_preview_tab_controller.h" |
| 49 #include "chrome/browser/profiles/profile_manager.h" | 50 #include "chrome/browser/profiles/profile_manager.h" |
| 50 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" | 51 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 created_file_thread_(false), | 122 created_file_thread_(false), |
| 122 created_db_thread_(false), | 123 created_db_thread_(false), |
| 123 created_process_launcher_thread_(false), | 124 created_process_launcher_thread_(false), |
| 124 created_cache_thread_(false), | 125 created_cache_thread_(false), |
| 125 created_watchdog_thread_(false), | 126 created_watchdog_thread_(false), |
| 126 #if defined(OS_CHROMEOS) | 127 #if defined(OS_CHROMEOS) |
| 127 created_web_socket_proxy_thread_(false), | 128 created_web_socket_proxy_thread_(false), |
| 128 #endif | 129 #endif |
| 129 created_profile_manager_(false), | 130 created_profile_manager_(false), |
| 130 created_local_state_(false), | 131 created_local_state_(false), |
| 132 created_spdy_config_service_manager_(false), |
| 131 created_icon_manager_(false), | 133 created_icon_manager_(false), |
| 132 created_devtools_manager_(false), | 134 created_devtools_manager_(false), |
| 133 created_sidebar_manager_(false), | 135 created_sidebar_manager_(false), |
| 134 created_browser_policy_connector_(false), | 136 created_browser_policy_connector_(false), |
| 135 created_notification_ui_manager_(false), | 137 created_notification_ui_manager_(false), |
| 136 created_safe_browsing_service_(false), | 138 created_safe_browsing_service_(false), |
| 137 module_ref_count_(0), | 139 module_ref_count_(0), |
| 138 did_start_(false), | 140 did_start_(false), |
| 139 checked_for_new_frames_(false), | 141 checked_for_new_frames_(false), |
| 140 using_new_frames_(false) { | 142 using_new_frames_(false) { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 notification_ui_manager_.reset(); | 199 notification_ui_manager_.reset(); |
| 198 | 200 |
| 199 // FIXME - We shouldn't need this, it's because of DefaultRequestContext! :( | 201 // FIXME - We shouldn't need this, it's because of DefaultRequestContext! :( |
| 200 // We need to kill off all URLFetchers using profile related | 202 // We need to kill off all URLFetchers using profile related |
| 201 // URLRequestContexts. Normally that'd be covered by deleting the Profiles, | 203 // URLRequestContexts. Normally that'd be covered by deleting the Profiles, |
| 202 // but we have some URLFetchers using the DefaultRequestContext, so they need | 204 // but we have some URLFetchers using the DefaultRequestContext, so they need |
| 203 // to be cancelled too. Remove this when DefaultRequestContext goes away. | 205 // to be cancelled too. Remove this when DefaultRequestContext goes away. |
| 204 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 206 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 205 NewRunnableFunction(&URLFetcher::CancelAll)); | 207 NewRunnableFunction(&URLFetcher::CancelAll)); |
| 206 | 208 |
| 209 if (spdy_config_service_manager_.get()) { |
| 210 spdy_config_service_manager_->Cleanup(); |
| 211 } |
| 212 |
| 207 // Need to clear profiles (download managers) before the io_thread_. | 213 // Need to clear profiles (download managers) before the io_thread_. |
| 208 profile_manager_.reset(); | 214 profile_manager_.reset(); |
| 209 | 215 |
| 210 // Debugger must be cleaned up before IO thread and NotificationService. | 216 // Debugger must be cleaned up before IO thread and NotificationService. |
| 211 remote_debugging_server_.reset(); | 217 remote_debugging_server_.reset(); |
| 212 | 218 |
| 213 if (devtools_legacy_handler_.get()) { | 219 if (devtools_legacy_handler_.get()) { |
| 214 devtools_legacy_handler_->Stop(); | 220 devtools_legacy_handler_->Stop(); |
| 215 devtools_legacy_handler_ = NULL; | 221 devtools_legacy_handler_ = NULL; |
| 216 } | 222 } |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 return profile_manager_.get(); | 431 return profile_manager_.get(); |
| 426 } | 432 } |
| 427 | 433 |
| 428 PrefService* BrowserProcessImpl::local_state() { | 434 PrefService* BrowserProcessImpl::local_state() { |
| 429 DCHECK(CalledOnValidThread()); | 435 DCHECK(CalledOnValidThread()); |
| 430 if (!created_local_state_) | 436 if (!created_local_state_) |
| 431 CreateLocalState(); | 437 CreateLocalState(); |
| 432 return local_state_.get(); | 438 return local_state_.get(); |
| 433 } | 439 } |
| 434 | 440 |
| 441 SpdyConfigServiceManager* BrowserProcessImpl::spdy_config_service_manager() { |
| 442 DCHECK(CalledOnValidThread()); |
| 443 if (!created_spdy_config_service_manager_) |
| 444 CreateSpdyConfigServiceManager(); |
| 445 return spdy_config_service_manager_.get(); |
| 446 } |
| 447 |
| 435 DevToolsManager* BrowserProcessImpl::devtools_manager() { | 448 DevToolsManager* BrowserProcessImpl::devtools_manager() { |
| 436 DCHECK(CalledOnValidThread()); | 449 DCHECK(CalledOnValidThread()); |
| 437 if (!created_devtools_manager_) | 450 if (!created_devtools_manager_) |
| 438 CreateDevToolsManager(); | 451 CreateDevToolsManager(); |
| 439 return devtools_manager_.get(); | 452 return devtools_manager_.get(); |
| 440 } | 453 } |
| 441 | 454 |
| 442 SidebarManager* BrowserProcessImpl::sidebar_manager() { | 455 SidebarManager* BrowserProcessImpl::sidebar_manager() { |
| 443 DCHECK(CalledOnValidThread()); | 456 DCHECK(CalledOnValidThread()); |
| 444 if (!created_sidebar_manager_) | 457 if (!created_sidebar_manager_) |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 756 // Also find plugins in a user-specific plugins dir, | 769 // Also find plugins in a user-specific plugins dir, |
| 757 // e.g. ~/.config/chromium/Plugins. | 770 // e.g. ~/.config/chromium/Plugins. |
| 758 FilePath user_data_dir; | 771 FilePath user_data_dir; |
| 759 if (PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) { | 772 if (PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)) { |
| 760 webkit::npapi::PluginList::Singleton()->AddExtraPluginDir( | 773 webkit::npapi::PluginList::Singleton()->AddExtraPluginDir( |
| 761 user_data_dir.Append("Plugins")); | 774 user_data_dir.Append("Plugins")); |
| 762 } | 775 } |
| 763 #endif | 776 #endif |
| 764 | 777 |
| 765 scoped_ptr<IOThread> thread(new IOThread( | 778 scoped_ptr<IOThread> thread(new IOThread( |
| 766 local_state(), net_log_.get(), extension_event_router_forwarder_.get())); | 779 local_state(), spdy_config_service_manager(), |
| 780 net_log_.get(), extension_event_router_forwarder_.get())); |
| 767 base::Thread::Options options; | 781 base::Thread::Options options; |
| 768 options.message_loop_type = MessageLoop::TYPE_IO; | 782 options.message_loop_type = MessageLoop::TYPE_IO; |
| 769 if (!thread->StartWithOptions(options)) | 783 if (!thread->StartWithOptions(options)) |
| 770 return; | 784 return; |
| 771 io_thread_.swap(thread); | 785 io_thread_.swap(thread); |
| 772 } | 786 } |
| 773 | 787 |
| 774 void BrowserProcessImpl::CreateFileThread() { | 788 void BrowserProcessImpl::CreateFileThread() { |
| 775 DCHECK(!created_file_thread_ && file_thread_.get() == NULL); | 789 DCHECK(!created_file_thread_ && file_thread_.get() == NULL); |
| 776 created_file_thread_ = true; | 790 created_file_thread_ = true; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 std::max(std::min(max_per_proxy, 99), | 919 std::max(std::min(max_per_proxy, 99), |
| 906 net::ClientSocketPoolManager::max_sockets_per_group())); | 920 net::ClientSocketPoolManager::max_sockets_per_group())); |
| 907 | 921 |
| 908 // This is observed by ChildProcessSecurityPolicy, which lives in content/ | 922 // This is observed by ChildProcessSecurityPolicy, which lives in content/ |
| 909 // though, so it can't register itself. | 923 // though, so it can't register itself. |
| 910 local_state_->RegisterListPref(prefs::kDisabledSchemes); | 924 local_state_->RegisterListPref(prefs::kDisabledSchemes); |
| 911 pref_change_registrar_.Add(prefs::kDisabledSchemes, this); | 925 pref_change_registrar_.Add(prefs::kDisabledSchemes, this); |
| 912 ApplyDisabledSchemesPolicy(); | 926 ApplyDisabledSchemesPolicy(); |
| 913 } | 927 } |
| 914 | 928 |
| 929 void BrowserProcessImpl::CreateSpdyConfigServiceManager() { |
| 930 DCHECK(!created_spdy_config_service_manager_ && |
| 931 spdy_config_service_manager_.get() == NULL); |
| 932 created_spdy_config_service_manager_ = true; |
| 933 spdy_config_service_manager_ = new SpdyConfigServiceManager(); |
| 934 } |
| 935 |
| 915 void BrowserProcessImpl::CreateIconManager() { | 936 void BrowserProcessImpl::CreateIconManager() { |
| 916 DCHECK(!created_icon_manager_ && icon_manager_.get() == NULL); | 937 DCHECK(!created_icon_manager_ && icon_manager_.get() == NULL); |
| 917 created_icon_manager_ = true; | 938 created_icon_manager_ = true; |
| 918 icon_manager_.reset(new IconManager); | 939 icon_manager_.reset(new IconManager); |
| 919 } | 940 } |
| 920 | 941 |
| 921 void BrowserProcessImpl::CreateDevToolsManager() { | 942 void BrowserProcessImpl::CreateDevToolsManager() { |
| 922 DCHECK(devtools_manager_.get() == NULL); | 943 DCHECK(devtools_manager_.get() == NULL); |
| 923 created_devtools_manager_ = true; | 944 created_devtools_manager_ = true; |
| 924 devtools_manager_.reset(new DevToolsManager()); | 945 devtools_manager_.reset(new DevToolsManager()); |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1096 } | 1117 } |
| 1097 | 1118 |
| 1098 void BrowserProcessImpl::OnAutoupdateTimer() { | 1119 void BrowserProcessImpl::OnAutoupdateTimer() { |
| 1099 if (CanAutorestartForUpdate()) { | 1120 if (CanAutorestartForUpdate()) { |
| 1100 DLOG(WARNING) << "Detected update. Restarting browser."; | 1121 DLOG(WARNING) << "Detected update. Restarting browser."; |
| 1101 RestartPersistentInstance(); | 1122 RestartPersistentInstance(); |
| 1102 } | 1123 } |
| 1103 } | 1124 } |
| 1104 | 1125 |
| 1105 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 1126 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
| OLD | NEW |