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

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: Followed on what we discussed. 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 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 globals.trusted_spdy_proxy.CopyToIfSet(&params->trusted_spdy_proxy); 1023 globals.trusted_spdy_proxy.CopyToIfSet(&params->trusted_spdy_proxy);
1024 globals.force_spdy_over_ssl.CopyToIfSet(&params->force_spdy_over_ssl); 1024 globals.force_spdy_over_ssl.CopyToIfSet(&params->force_spdy_over_ssl);
1025 globals.force_spdy_always.CopyToIfSet(&params->force_spdy_always); 1025 globals.force_spdy_always.CopyToIfSet(&params->force_spdy_always);
1026 params->forced_spdy_exclusions = globals.forced_spdy_exclusions; 1026 params->forced_spdy_exclusions = globals.forced_spdy_exclusions;
1027 globals.use_alternate_protocols.CopyToIfSet( 1027 globals.use_alternate_protocols.CopyToIfSet(
1028 &params->use_alternate_protocols); 1028 &params->use_alternate_protocols);
1029 globals.alternate_protocol_probability_threshold.CopyToIfSet( 1029 globals.alternate_protocol_probability_threshold.CopyToIfSet(
1030 &params->alternate_protocol_probability_threshold); 1030 &params->alternate_protocol_probability_threshold);
1031 1031
1032 globals.enable_quic.CopyToIfSet(&params->enable_quic); 1032 globals.enable_quic.CopyToIfSet(&params->enable_quic);
1033 globals.enable_quic_proxy.CopyToIfSet(&params->enable_quic_proxy);
1033 globals.quic_always_require_handshake_confirmation.CopyToIfSet( 1034 globals.quic_always_require_handshake_confirmation.CopyToIfSet(
1034 &params->quic_always_require_handshake_confirmation); 1035 &params->quic_always_require_handshake_confirmation);
1035 globals.quic_disable_connection_pooling.CopyToIfSet( 1036 globals.quic_disable_connection_pooling.CopyToIfSet(
1036 &params->quic_disable_connection_pooling); 1037 &params->quic_disable_connection_pooling);
1037 globals.quic_load_server_info_timeout_ms.CopyToIfSet( 1038 globals.quic_load_server_info_timeout_ms.CopyToIfSet(
1038 &params->quic_load_server_info_timeout_ms); 1039 &params->quic_load_server_info_timeout_ms);
1039 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( 1040 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet(
1040 &params->quic_load_server_info_timeout_srtt_multiplier); 1041 &params->quic_load_server_info_timeout_srtt_multiplier);
1041 globals.quic_enable_truncated_connection_ids.CopyToIfSet( 1042 globals.quic_enable_truncated_connection_ids.CopyToIfSet(
1042 &params->quic_enable_truncated_connection_ids); 1043 &params->quic_enable_truncated_connection_ids);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 } 1144 }
1144 1145
1145 // static 1146 // static
1146 void IOThread::ConfigureQuicGlobals( 1147 void IOThread::ConfigureQuicGlobals(
1147 const base::CommandLine& command_line, 1148 const base::CommandLine& command_line,
1148 base::StringPiece quic_trial_group, 1149 base::StringPiece quic_trial_group,
1149 const VariationParameters& quic_trial_params, 1150 const VariationParameters& quic_trial_params,
1150 IOThread::Globals* globals) { 1151 IOThread::Globals* globals) {
1151 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); 1152 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group);
1152 globals->enable_quic.set(enable_quic); 1153 globals->enable_quic.set(enable_quic);
1154 bool enable_quic_for_proxies =
1155 ShouldEnableQuicForProxies(command_line, quic_trial_group);
1156 globals->enable_quic_proxy.set(enable_quic_for_proxies);
1153 if (enable_quic) { 1157 if (enable_quic) {
1154 globals->quic_always_require_handshake_confirmation.set( 1158 globals->quic_always_require_handshake_confirmation.set(
1155 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); 1159 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params));
1156 globals->quic_disable_connection_pooling.set( 1160 globals->quic_disable_connection_pooling.set(
1157 ShouldQuicDisableConnectionPooling(quic_trial_params)); 1161 ShouldQuicDisableConnectionPooling(quic_trial_params));
1158 int load_server_info_timeout_ms = 1162 int load_server_info_timeout_ms =
1159 GetQuicLoadServerInfoTimeout(quic_trial_params); 1163 GetQuicLoadServerInfoTimeout(quic_trial_params);
1160 if (load_server_info_timeout_ms != 0) { 1164 if (load_server_info_timeout_ms != 0) {
1161 globals->quic_load_server_info_timeout_ms.set( 1165 globals->quic_load_server_info_timeout_ms.set(
1162 load_server_info_timeout_ms); 1166 load_server_info_timeout_ms);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1222 if (command_line.HasSwitch(switches::kDisableQuic)) 1226 if (command_line.HasSwitch(switches::kDisableQuic))
1223 return false; 1227 return false;
1224 1228
1225 if (command_line.HasSwitch(switches::kEnableQuic)) 1229 if (command_line.HasSwitch(switches::kEnableQuic))
1226 return true; 1230 return true;
1227 1231
1228 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || 1232 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) ||
1229 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName); 1233 quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName);
1230 } 1234 }
1231 1235
1236 bool IOThread::ShouldEnableQuicForProxies(const base::CommandLine& command_line,
1237 base::StringPiece quic_trial_group) {
1238 return ShouldEnableQuic(command_line, quic_trial_group) ||
1239 base::FieldTrialList::FindFullName(
1240 "DataReductionProxyUseQUICAsPrimaryOrigin") == "Enabled";
bengr 2015/02/07 01:48:48 How about DataReductionProxyUseQUIC? And why does
Ryan Hamilton 2015/02/08 16:56:35 s/QUIC/Quic/ when used like this. Do you already h
Ryan Hamilton 2015/02/08 16:56:36 I think you need to check the --disable-quic flag?
tbansal1 2015/02/10 19:46:04 Done.
tbansal1 2015/02/10 19:46:04 Done.
tbansal1 2015/02/10 19:46:04 Done.
tbansal1 2015/02/10 19:46:04 Done.
tbansal1 2015/02/10 22:45:41 Done.
tbansal1 2015/02/10 22:45:41 This is the first.
1241 }
1242
1232 bool IOThread::ShouldEnableQuicPortSelection( 1243 bool IOThread::ShouldEnableQuicPortSelection(
1233 const base::CommandLine& command_line) { 1244 const base::CommandLine& command_line) {
1234 if (command_line.HasSwitch(switches::kDisableQuicPortSelection)) 1245 if (command_line.HasSwitch(switches::kDisableQuicPortSelection))
1235 return false; 1246 return false;
1236 1247
1237 if (command_line.HasSwitch(switches::kEnableQuicPortSelection)) 1248 if (command_line.HasSwitch(switches::kEnableQuicPortSelection))
1238 return true; 1249 return true;
1239 1250
1240 return false; // Default to disabling port selection on all channels. 1251 return false; // Default to disabling port selection on all channels.
1241 } 1252 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1386 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); 1397 net::QuicVersionVector supported_versions = net::QuicSupportedVersions();
1387 for (size_t i = 0; i < supported_versions.size(); ++i) { 1398 for (size_t i = 0; i < supported_versions.size(); ++i) {
1388 net::QuicVersion version = supported_versions[i]; 1399 net::QuicVersion version = supported_versions[i];
1389 if (net::QuicVersionToString(version) == quic_version) { 1400 if (net::QuicVersionToString(version) == quic_version) {
1390 return version; 1401 return version;
1391 } 1402 }
1392 } 1403 }
1393 1404
1394 return net::QUIC_VERSION_UNSUPPORTED; 1405 return net::QUIC_VERSION_UNSUPPORTED;
1395 } 1406 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698