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 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 base::Bind(&BrowserProcessImpl::ApplyDefaultBrowserPolicy, | 875 base::Bind(&BrowserProcessImpl::ApplyDefaultBrowserPolicy, |
876 base::Unretained(this))); | 876 base::Unretained(this))); |
877 | 877 |
878 // This preference must be kept in sync with external values; update them | 878 // This preference must be kept in sync with external values; update them |
879 // whenever the preference or its controlling policy changes. | 879 // whenever the preference or its controlling policy changes. |
880 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 880 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
881 pref_change_registrar_.Add( | 881 pref_change_registrar_.Add( |
882 prefs::kMetricsReportingEnabled, | 882 prefs::kMetricsReportingEnabled, |
883 base::Bind(&BrowserProcessImpl::ApplyMetricsReportingPolicy, | 883 base::Bind(&BrowserProcessImpl::ApplyMetricsReportingPolicy, |
884 base::Unretained(this))); | 884 base::Unretained(this))); |
885 ApplyMetricsReportingPolicy(); | |
886 #endif | 885 #endif |
887 | 886 |
888 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); | 887 int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy); |
889 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( | 888 net::ClientSocketPoolManager::set_max_sockets_per_proxy_server( |
890 net::HttpNetworkSession::NORMAL_SOCKET_POOL, | 889 net::HttpNetworkSession::NORMAL_SOCKET_POOL, |
891 std::max(std::min(max_per_proxy, 99), | 890 std::max(std::min(max_per_proxy, 99), |
892 net::ClientSocketPoolManager::max_sockets_per_group( | 891 net::ClientSocketPoolManager::max_sockets_per_group( |
893 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); | 892 net::HttpNetworkSession::NORMAL_SOCKET_POOL))); |
894 } | 893 } |
895 | 894 |
896 void BrowserProcessImpl::PreCreateThreads() { | 895 void BrowserProcessImpl::PreCreateThreads() { |
897 io_thread_.reset(new IOThread(local_state(), policy_service(), net_log_.get(), | 896 io_thread_.reset(new IOThread(local_state(), policy_service(), net_log_.get(), |
898 extension_event_router_forwarder_.get())); | 897 extension_event_router_forwarder_.get())); |
899 } | 898 } |
900 | 899 |
901 void BrowserProcessImpl::PreMainMessageLoopRun() { | 900 void BrowserProcessImpl::PreMainMessageLoopRun() { |
902 #if defined(ENABLE_CONFIGURATION_POLICY) | 901 #if defined(ENABLE_CONFIGURATION_POLICY) |
903 // browser_policy_connector() is created very early because local_state() | 902 // browser_policy_connector() is created very early because local_state() |
904 // needs policy to be initialized with the managed preference values. | 903 // needs policy to be initialized with the managed preference values. |
905 // However, policy fetches from the network and loading of disk caches | 904 // However, policy fetches from the network and loading of disk caches |
906 // requires that threads are running; this Init() call lets the connector | 905 // requires that threads are running; this Init() call lets the connector |
907 // resume its initialization now that the loops are spinning and the | 906 // resume its initialization now that the loops are spinning and the |
908 // system request context is available for the fetchers. | 907 // system request context is available for the fetchers. |
909 browser_policy_connector()->Init(local_state(), system_request_context()); | 908 browser_policy_connector()->Init(local_state(), system_request_context()); |
910 #endif | 909 #endif |
911 | 910 |
912 if (local_state_->IsManagedPreference(prefs::kDefaultBrowserSettingEnabled)) | 911 if (local_state_->IsManagedPreference(prefs::kDefaultBrowserSettingEnabled)) |
913 ApplyDefaultBrowserPolicy(); | 912 ApplyDefaultBrowserPolicy(); |
914 | 913 |
| 914 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
| 915 ApplyMetricsReportingPolicy(); |
| 916 #endif |
| 917 |
915 #if defined(ENABLE_PLUGINS) | 918 #if defined(ENABLE_PLUGINS) |
916 PluginService* plugin_service = PluginService::GetInstance(); | 919 PluginService* plugin_service = PluginService::GetInstance(); |
917 plugin_service->SetFilter(ChromePluginServiceFilter::GetInstance()); | 920 plugin_service->SetFilter(ChromePluginServiceFilter::GetInstance()); |
918 plugin_service->StartWatchingPlugins(); | 921 plugin_service->StartWatchingPlugins(); |
919 | 922 |
920 #if defined(OS_POSIX) | 923 #if defined(OS_POSIX) |
921 // Also find plugins in a user-specific plugins dir, | 924 // Also find plugins in a user-specific plugins dir, |
922 // e.g. ~/.config/chromium/Plugins. | 925 // e.g. ~/.config/chromium/Plugins. |
923 const CommandLine& cmd_line = *CommandLine::ForCurrentProcess(); | 926 const CommandLine& cmd_line = *CommandLine::ForCurrentProcess(); |
924 if (!cmd_line.HasSwitch(switches::kDisablePluginsDiscovery)) { | 927 if (!cmd_line.HasSwitch(switches::kDisablePluginsDiscovery)) { |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1030 } | 1033 } |
1031 } | 1034 } |
1032 | 1035 |
1033 void BrowserProcessImpl::ApplyAllowCrossOriginAuthPromptPolicy() { | 1036 void BrowserProcessImpl::ApplyAllowCrossOriginAuthPromptPolicy() { |
1034 bool value = local_state()->GetBoolean(prefs::kAllowCrossOriginAuthPrompt); | 1037 bool value = local_state()->GetBoolean(prefs::kAllowCrossOriginAuthPrompt); |
1035 ResourceDispatcherHost::Get()->SetAllowCrossOriginAuthPrompt(value); | 1038 ResourceDispatcherHost::Get()->SetAllowCrossOriginAuthPrompt(value); |
1036 } | 1039 } |
1037 | 1040 |
1038 void BrowserProcessImpl::ApplyMetricsReportingPolicy() { | 1041 void BrowserProcessImpl::ApplyMetricsReportingPolicy() { |
1039 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 1042 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
1040 BrowserThread::PostTask( | 1043 CHECK(BrowserThread::PostTask( |
1041 BrowserThread::FILE, FROM_HERE, | 1044 BrowserThread::FILE, FROM_HERE, |
1042 base::Bind( | 1045 base::Bind( |
1043 base::IgnoreResult(&GoogleUpdateSettings::SetCollectStatsConsent), | 1046 base::IgnoreResult(&GoogleUpdateSettings::SetCollectStatsConsent), |
1044 local_state()->GetBoolean(prefs::kMetricsReportingEnabled))); | 1047 local_state()->GetBoolean(prefs::kMetricsReportingEnabled)))); |
1045 #endif | 1048 #endif |
1046 } | 1049 } |
1047 | 1050 |
1048 // Mac is currently not supported. | 1051 // Mac is currently not supported. |
1049 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 1052 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
1050 | 1053 |
1051 bool BrowserProcessImpl::CanAutorestartForUpdate() const { | 1054 bool BrowserProcessImpl::CanAutorestartForUpdate() const { |
1052 // Check if browser is in the background and if it needs to be restarted to | 1055 // Check if browser is in the background and if it needs to be restarted to |
1053 // apply a pending update. | 1056 // apply a pending update. |
1054 return chrome::GetTotalBrowserCount() == 0 && chrome::WillKeepAlive() && | 1057 return chrome::GetTotalBrowserCount() == 0 && chrome::WillKeepAlive() && |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 } | 1098 } |
1096 | 1099 |
1097 void BrowserProcessImpl::OnAutoupdateTimer() { | 1100 void BrowserProcessImpl::OnAutoupdateTimer() { |
1098 if (CanAutorestartForUpdate()) { | 1101 if (CanAutorestartForUpdate()) { |
1099 DLOG(WARNING) << "Detected update. Restarting browser."; | 1102 DLOG(WARNING) << "Detected update. Restarting browser."; |
1100 RestartBackgroundInstance(); | 1103 RestartBackgroundInstance(); |
1101 } | 1104 } |
1102 } | 1105 } |
1103 | 1106 |
1104 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | 1107 #endif // (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) |
OLD | NEW |