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(); | |
1174 globals->enable_quic_for_proxies.set(enable_quic_for_proxies); | |
1171 if (enable_quic) { | 1175 if (enable_quic) { |
1172 globals->quic_always_require_handshake_confirmation.set( | 1176 globals->quic_always_require_handshake_confirmation.set( |
1173 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); | 1177 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); |
1174 globals->quic_disable_connection_pooling.set( | 1178 globals->quic_disable_connection_pooling.set( |
1175 ShouldQuicDisableConnectionPooling(quic_trial_params)); | 1179 ShouldQuicDisableConnectionPooling(quic_trial_params)); |
1176 int load_server_info_timeout_ms = | 1180 int load_server_info_timeout_ms = |
1177 GetQuicLoadServerInfoTimeout(quic_trial_params); | 1181 GetQuicLoadServerInfoTimeout(quic_trial_params); |
1178 if (load_server_info_timeout_ms != 0) { | 1182 if (load_server_info_timeout_ms != 0) { |
1179 globals->quic_load_server_info_timeout_ms.set( | 1183 globals->quic_load_server_info_timeout_ms.set( |
1180 load_server_info_timeout_ms); | 1184 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)) | 1246 if (command_line.HasSwitch(switches::kDisableQuic)) |
1243 return false; | 1247 return false; |
1244 | 1248 |
1245 if (command_line.HasSwitch(switches::kEnableQuic)) | 1249 if (command_line.HasSwitch(switches::kEnableQuic)) |
1246 return true; | 1250 return true; |
1247 | 1251 |
1248 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || | 1252 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || |
1249 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); | 1253 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); |
1250 } | 1254 } |
1251 | 1255 |
1256 // static | |
1257 bool IOThread::ShouldEnableQuicForProxies() { | |
1258 const base::CommandLine& command_line = | |
1259 *base::CommandLine::ForCurrentProcess(); | |
1260 | |
1261 if (command_line.HasSwitch(switches::kDisableQuic)) | |
1262 return false; | |
1263 | |
1264 std::string quic_trial_group = | |
1265 base::FieldTrialList::FindFullName(kQuicFieldTrialName); | |
1266 | |
1267 return ShouldEnableQuic(command_line, quic_trial_group) || | |
1268 data_reduction_proxy::DataReductionProxyParams:: | |
1269 IsIncludedInQuicFieldTrial(); | |
mmenke
2015/02/13 17:45:21
Per earlier comment, do we really want to enable Q
tbansal1
2015/02/13 18:03:47
This was based on rch@ suggestion. There was a con
mmenke
2015/02/13 18:09:44
Thanks for the followup! Happy to defer to rch he
| |
1270 } | |
1271 | |
1252 bool IOThread::ShouldEnableQuicPortSelection( | 1272 bool IOThread::ShouldEnableQuicPortSelection( |
1253 const base::CommandLine& command_line) { | 1273 const base::CommandLine& command_line) { |
1254 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) | 1274 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) |
1255 return false; | 1275 return false; |
1256 | 1276 |
1257 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) | 1277 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) |
1258 return true; | 1278 return true; |
1259 | 1279 |
1260 return false; // Default to disabling port selection on all channels. | 1280 return false; // Default to disabling port selection on all channels. |
1261 } | 1281 } |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1414 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); | 1434 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); |
1415 for (size_t i = 0; i < supported_versions.size(); ++i) { | 1435 for (size_t i = 0; i < supported_versions.size(); ++i) { |
1416 net::QuicVersion version = supported_versions[i]; | 1436 net::QuicVersion version = supported_versions[i]; |
1417 if (net::QuicVersionToString(version) == quic_version) { | 1437 if (net::QuicVersionToString(version) == quic_version) { |
1418 return version; | 1438 return version; |
1419 } | 1439 } |
1420 } | 1440 } |
1421 | 1441 |
1422 return net::QUIC_VERSION_UNSUPPORTED; | 1442 return net::QUIC_VERSION_UNSUPPORTED; |
1423 } | 1443 } |
OLD | NEW |