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/io_thread.h" | 5 #include "chrome/browser/io_thread.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "chrome/browser/net/chrome_network_delegate.h" | 35 #include "chrome/browser/net/chrome_network_delegate.h" |
36 #include "chrome/browser/net/connect_interceptor.h" | 36 #include "chrome/browser/net/connect_interceptor.h" |
37 #include "chrome/browser/net/dns_probe_service.h" | 37 #include "chrome/browser/net/dns_probe_service.h" |
38 #include "chrome/browser/net/pref_proxy_config_tracker.h" | 38 #include "chrome/browser/net/pref_proxy_config_tracker.h" |
39 #include "chrome/browser/net/proxy_service_factory.h" | 39 #include "chrome/browser/net/proxy_service_factory.h" |
40 #include "chrome/common/chrome_content_client.h" | 40 #include "chrome/common/chrome_content_client.h" |
41 #include "chrome/common/chrome_switches.h" | 41 #include "chrome/common/chrome_switches.h" |
42 #include "chrome/common/chrome_version_info.h" | 42 #include "chrome/common/chrome_version_info.h" |
43 #include "chrome/common/pref_names.h" | 43 #include "chrome/common/pref_names.h" |
44 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_pref
s.h" | 44 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_pref
s.h" |
| 45 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_param
s.h" |
45 #include "components/policy/core/common/policy_service.h" | 46 #include "components/policy/core/common/policy_service.h" |
46 #include "components/variations/variations_associated_data.h" | 47 #include "components/variations/variations_associated_data.h" |
47 #include "content/public/browser/browser_thread.h" | 48 #include "content/public/browser/browser_thread.h" |
48 #include "content/public/browser/cookie_store_factory.h" | 49 #include "content/public/browser/cookie_store_factory.h" |
49 #include "net/base/host_mapping_rules.h" | 50 #include "net/base/host_mapping_rules.h" |
50 #include "net/base/net_util.h" | 51 #include "net/base/net_util.h" |
51 #include "net/cert/cert_policy_enforcer.h" | 52 #include "net/cert/cert_policy_enforcer.h" |
52 #include "net/cert/cert_verifier.h" | 53 #include "net/cert/cert_verifier.h" |
53 #include "net/cert/cert_verify_proc.h" | 54 #include "net/cert/cert_verify_proc.h" |
54 #include "net/cert/ct_known_logs.h" | 55 #include "net/cert/ct_known_logs.h" |
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 globals.trusted_spdy_proxy.CopyToIfSet(¶ms->trusted_spdy_proxy); | 1033 globals.trusted_spdy_proxy.CopyToIfSet(¶ms->trusted_spdy_proxy); |
1033 globals.force_spdy_over_ssl.CopyToIfSet(¶ms->force_spdy_over_ssl); | 1034 globals.force_spdy_over_ssl.CopyToIfSet(¶ms->force_spdy_over_ssl); |
1034 globals.force_spdy_always.CopyToIfSet(¶ms->force_spdy_always); | 1035 globals.force_spdy_always.CopyToIfSet(¶ms->force_spdy_always); |
1035 params->forced_spdy_exclusions = globals.forced_spdy_exclusions; | 1036 params->forced_spdy_exclusions = globals.forced_spdy_exclusions; |
1036 globals.use_alternate_protocols.CopyToIfSet( | 1037 globals.use_alternate_protocols.CopyToIfSet( |
1037 ¶ms->use_alternate_protocols); | 1038 ¶ms->use_alternate_protocols); |
1038 globals.alternate_protocol_probability_threshold.CopyToIfSet( | 1039 globals.alternate_protocol_probability_threshold.CopyToIfSet( |
1039 ¶ms->alternate_protocol_probability_threshold); | 1040 ¶ms->alternate_protocol_probability_threshold); |
1040 | 1041 |
1041 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); | 1042 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); |
| 1043 globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); |
1042 globals.quic_always_require_handshake_confirmation.CopyToIfSet( | 1044 globals.quic_always_require_handshake_confirmation.CopyToIfSet( |
1043 ¶ms->quic_always_require_handshake_confirmation); | 1045 ¶ms->quic_always_require_handshake_confirmation); |
1044 globals.quic_disable_connection_pooling.CopyToIfSet( | 1046 globals.quic_disable_connection_pooling.CopyToIfSet( |
1045 ¶ms->quic_disable_connection_pooling); | 1047 ¶ms->quic_disable_connection_pooling); |
1046 globals.quic_load_server_info_timeout_ms.CopyToIfSet( | 1048 globals.quic_load_server_info_timeout_ms.CopyToIfSet( |
1047 ¶ms->quic_load_server_info_timeout_ms); | 1049 ¶ms->quic_load_server_info_timeout_ms); |
1048 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( | 1050 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( |
1049 ¶ms->quic_load_server_info_timeout_srtt_multiplier); | 1051 ¶ms->quic_load_server_info_timeout_srtt_multiplier); |
1050 globals.quic_enable_truncated_connection_ids.CopyToIfSet( | 1052 globals.quic_enable_truncated_connection_ids.CopyToIfSet( |
1051 ¶ms->quic_enable_truncated_connection_ids); | 1053 ¶ms->quic_enable_truncated_connection_ids); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1161 } | 1163 } |
1162 | 1164 |
1163 // static | 1165 // static |
1164 void IOThread::ConfigureQuicGlobals( | 1166 void IOThread::ConfigureQuicGlobals( |
1165 const base::CommandLine& command_line, | 1167 const base::CommandLine& command_line, |
1166 base::StringPiece quic_trial_group, | 1168 base::StringPiece quic_trial_group, |
1167 const VariationParameters& quic_trial_params, | 1169 const VariationParameters& quic_trial_params, |
1168 IOThread::Globals* globals) { | 1170 IOThread::Globals* globals) { |
1169 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); | 1171 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); |
1170 globals->enable_quic.set(enable_quic); | 1172 globals->enable_quic.set(enable_quic); |
| 1173 bool enable_quic_for_proxies = ShouldEnableQuicForProxies(command_line, |
| 1174 quic_trial_group); |
| 1175 globals->enable_quic_for_proxies.set(enable_quic_for_proxies); |
1171 if (enable_quic) { | 1176 if (enable_quic) { |
1172 globals->quic_always_require_handshake_confirmation.set( | 1177 globals->quic_always_require_handshake_confirmation.set( |
1173 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); | 1178 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); |
1174 globals->quic_disable_connection_pooling.set( | 1179 globals->quic_disable_connection_pooling.set( |
1175 ShouldQuicDisableConnectionPooling(quic_trial_params)); | 1180 ShouldQuicDisableConnectionPooling(quic_trial_params)); |
1176 int load_server_info_timeout_ms = | 1181 int load_server_info_timeout_ms = |
1177 GetQuicLoadServerInfoTimeout(quic_trial_params); | 1182 GetQuicLoadServerInfoTimeout(quic_trial_params); |
1178 if (load_server_info_timeout_ms != 0) { | 1183 if (load_server_info_timeout_ms != 0) { |
1179 globals->quic_load_server_info_timeout_ms.set( | 1184 globals->quic_load_server_info_timeout_ms.set( |
1180 load_server_info_timeout_ms); | 1185 load_server_info_timeout_ms); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1242 if (command_line.HasSwitch(switches::kDisableQuic)) | 1247 if (command_line.HasSwitch(switches::kDisableQuic)) |
1243 return false; | 1248 return false; |
1244 | 1249 |
1245 if (command_line.HasSwitch(switches::kEnableQuic)) | 1250 if (command_line.HasSwitch(switches::kEnableQuic)) |
1246 return true; | 1251 return true; |
1247 | 1252 |
1248 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || | 1253 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || |
1249 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); | 1254 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); |
1250 } | 1255 } |
1251 | 1256 |
| 1257 // static |
| 1258 bool IOThread::ShouldEnableQuicForProxies(const base::CommandLine& command_line, |
| 1259 base::StringPiece quic_trial_group) { |
| 1260 return ShouldEnableQuic(command_line, quic_trial_group) || |
| 1261 ShouldEnableQuicForDataReductionProxy(); |
| 1262 } |
| 1263 |
| 1264 // static |
| 1265 bool IOThread::ShouldEnableQuicForDataReductionProxy() { |
| 1266 const base::CommandLine& command_line = |
| 1267 *base::CommandLine::ForCurrentProcess(); |
| 1268 |
| 1269 if (command_line.HasSwitch(switches::kDisableQuic)) |
| 1270 return false; |
| 1271 |
| 1272 return data_reduction_proxy::DataReductionProxyParams:: |
| 1273 IsIncludedInQuicFieldTrial(); |
| 1274 } |
| 1275 |
1252 bool IOThread::ShouldEnableQuicPortSelection( | 1276 bool IOThread::ShouldEnableQuicPortSelection( |
1253 const base::CommandLine& command_line) { | 1277 const base::CommandLine& command_line) { |
1254 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) | 1278 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) |
1255 return false; | 1279 return false; |
1256 | 1280 |
1257 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) | 1281 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) |
1258 return true; | 1282 return true; |
1259 | 1283 |
1260 return false; // Default to disabling port selection on all channels. | 1284 return false; // Default to disabling port selection on all channels. |
1261 } | 1285 } |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); | 1438 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); |
1415 for (size_t i = 0; i < supported_versions.size(); ++i) { | 1439 for (size_t i = 0; i < supported_versions.size(); ++i) { |
1416 net::QuicVersion version = supported_versions[i]; | 1440 net::QuicVersion version = supported_versions[i]; |
1417 if (net::QuicVersionToString(version) == quic_version) { | 1441 if (net::QuicVersionToString(version) == quic_version) { |
1418 return version; | 1442 return version; |
1419 } | 1443 } |
1420 } | 1444 } |
1421 | 1445 |
1422 return net::QUIC_VERSION_UNSUPPORTED; | 1446 return net::QUIC_VERSION_UNSUPPORTED; |
1423 } | 1447 } |
OLD | NEW |