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 |