Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: chrome/browser/io_thread.cc

Issue 903213003: Enable QUIC for proxies based on Finch config and command line switch. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed all comments. Added new field in IOThread globals Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
1032 globals.trusted_spdy_proxy.CopyToIfSet(&params->trusted_spdy_proxy); 1033 globals.trusted_spdy_proxy.CopyToIfSet(&params->trusted_spdy_proxy);
1033 globals.force_spdy_over_ssl.CopyToIfSet(&params->force_spdy_over_ssl); 1034 globals.force_spdy_over_ssl.CopyToIfSet(&params->force_spdy_over_ssl);
1034 globals.force_spdy_always.CopyToIfSet(&params->force_spdy_always); 1035 globals.force_spdy_always.CopyToIfSet(&params->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 &params->use_alternate_protocols); 1038 &params->use_alternate_protocols);
1038 globals.alternate_protocol_probability_threshold.CopyToIfSet( 1039 globals.alternate_protocol_probability_threshold.CopyToIfSet(
1039 &params->alternate_protocol_probability_threshold); 1040 &params->alternate_protocol_probability_threshold);
1040 1041
1041 globals.enable_quic.CopyToIfSet(&params->enable_quic); 1042 globals.enable_quic.CopyToIfSet(&params->enable_quic);
1043 globals.enable_quic_for_proxies.CopyToIfSet(&params->enable_quic_for_proxies);
1044 globals.enable_quic_for_data_reduction_proxy.CopyToIfSet(
1045 &params->enable_quic_for_data_reduction_proxy);
1042 globals.quic_always_require_handshake_confirmation.CopyToIfSet( 1046 globals.quic_always_require_handshake_confirmation.CopyToIfSet(
1043 &params->quic_always_require_handshake_confirmation); 1047 &params->quic_always_require_handshake_confirmation);
1044 globals.quic_disable_connection_pooling.CopyToIfSet( 1048 globals.quic_disable_connection_pooling.CopyToIfSet(
1045 &params->quic_disable_connection_pooling); 1049 &params->quic_disable_connection_pooling);
1046 globals.quic_load_server_info_timeout_ms.CopyToIfSet( 1050 globals.quic_load_server_info_timeout_ms.CopyToIfSet(
1047 &params->quic_load_server_info_timeout_ms); 1051 &params->quic_load_server_info_timeout_ms);
1048 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( 1052 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet(
1049 &params->quic_load_server_info_timeout_srtt_multiplier); 1053 &params->quic_load_server_info_timeout_srtt_multiplier);
1050 globals.quic_enable_truncated_connection_ids.CopyToIfSet( 1054 globals.quic_enable_truncated_connection_ids.CopyToIfSet(
1051 &params->quic_enable_truncated_connection_ids); 1055 &params->quic_enable_truncated_connection_ids);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 } 1165 }
1162 1166
1163 // static 1167 // static
1164 void IOThread::ConfigureQuicGlobals( 1168 void IOThread::ConfigureQuicGlobals(
1165 const base::CommandLine& command_line, 1169 const base::CommandLine& command_line,
1166 base::StringPiece quic_trial_group, 1170 base::StringPiece quic_trial_group,
1167 const VariationParameters& quic_trial_params, 1171 const VariationParameters& quic_trial_params,
1168 IOThread::Globals* globals) { 1172 IOThread::Globals* globals) {
1169 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); 1173 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group);
1170 globals->enable_quic.set(enable_quic); 1174 globals->enable_quic.set(enable_quic);
1175 bool enable_quic_for_proxies = ShouldEnableQuicForProxies(command_line,
1176 quic_trial_group);
1177 globals->enable_quic_for_proxies.set(enable_quic_for_proxies);
1178
1179 bool enable_quic_for_data_reduction_proxy =
1180 ShouldEnableQuicForDataReductionProxy(command_line, quic_trial_group);
1181 globals->enable_quic_for_data_reduction_proxy.set(
1182 enable_quic_for_data_reduction_proxy);
1183
1171 if (enable_quic) { 1184 if (enable_quic) {
1172 globals->quic_always_require_handshake_confirmation.set( 1185 globals->quic_always_require_handshake_confirmation.set(
1173 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); 1186 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params));
1174 globals->quic_disable_connection_pooling.set( 1187 globals->quic_disable_connection_pooling.set(
1175 ShouldQuicDisableConnectionPooling(quic_trial_params)); 1188 ShouldQuicDisableConnectionPooling(quic_trial_params));
1176 int load_server_info_timeout_ms = 1189 int load_server_info_timeout_ms =
1177 GetQuicLoadServerInfoTimeout(quic_trial_params); 1190 GetQuicLoadServerInfoTimeout(quic_trial_params);
1178 if (load_server_info_timeout_ms != 0) { 1191 if (load_server_info_timeout_ms != 0) {
1179 globals->quic_load_server_info_timeout_ms.set( 1192 globals->quic_load_server_info_timeout_ms.set(
1180 load_server_info_timeout_ms); 1193 load_server_info_timeout_ms);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 if (command_line.HasSwitch(switches::kDisableQuic)) 1255 if (command_line.HasSwitch(switches::kDisableQuic))
1243 return false; 1256 return false;
1244 1257
1245 if (command_line.HasSwitch(switches::kEnableQuic)) 1258 if (command_line.HasSwitch(switches::kEnableQuic))
1246 return true; 1259 return true;
1247 1260
1248 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || 1261 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) ||
1249 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); 1262 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName);
1250 } 1263 }
1251 1264
1265 // static
1266 bool IOThread::ShouldEnableQuicForProxies(const base::CommandLine& command_line,
1267 base::StringPiece quic_trial_group) {
1268 if (command_line.HasSwitch(switches::kDisableQuic))
1269 return false;
1270
1271 return ShouldEnableQuic(command_line, quic_trial_group) ||
1272 data_reduction_proxy::DataReductionProxyParams::
1273 IsIncludedInQuicFieldTrial();
1274 }
1275
1276 // static
1277 bool IOThread::ShouldEnableQuicForDataReductionProxy(
1278 const base::CommandLine& command_line,
1279 base::StringPiece quic_trial_group) {
1280 return ShouldEnableQuicForProxies(command_line, quic_trial_group) &&
1281 data_reduction_proxy::DataReductionProxyParams::
1282 IsIncludedInQuicFieldTrial();
1283 }
1284
1252 bool IOThread::ShouldEnableQuicPortSelection( 1285 bool IOThread::ShouldEnableQuicPortSelection(
1253 const base::CommandLine& command_line) { 1286 const base::CommandLine& command_line) {
1254 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) 1287 if (command_line.HasSwitch(switches::kDisableQuicPortSelection))
1255 return false; 1288 return false;
1256 1289
1257 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) 1290 if (command_line.HasSwitch(switches::kEnableQuicPortSelection))
1258 return true; 1291 return true;
1259 1292
1260 return false; // Default to disabling port selection on all channels. 1293 return false; // Default to disabling port selection on all channels.
1261 } 1294 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1414 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); 1447 net::QuicVersionVector supported_versions = net::QuicSupportedVersions();
1415 for (size_t i = 0; i < supported_versions.size(); ++i) { 1448 for (size_t i = 0; i < supported_versions.size(); ++i) {
1416 net::QuicVersion version = supported_versions[i]; 1449 net::QuicVersion version = supported_versions[i];
1417 if (net::QuicVersionToString(version) == quic_version) { 1450 if (net::QuicVersionToString(version) == quic_version) {
1418 return version; 1451 return version;
1419 } 1452 }
1420 } 1453 }
1421 1454
1422 return net::QUIC_VERSION_UNSUPPORTED; 1455 return net::QUIC_VERSION_UNSUPPORTED;
1423 } 1456 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698