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

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

Issue 1603203002: Add a finch trial param to disable QUIC when connection times out with open streams (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 1126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 globals.use_alternative_services.CopyToIfSet( 1137 globals.use_alternative_services.CopyToIfSet(
1138 &params->use_alternative_services); 1138 &params->use_alternative_services);
1139 globals.alternative_service_probability_threshold.CopyToIfSet( 1139 globals.alternative_service_probability_threshold.CopyToIfSet(
1140 &params->alternative_service_probability_threshold); 1140 &params->alternative_service_probability_threshold);
1141 1141
1142 globals.enable_npn.CopyToIfSet(&params->enable_npn); 1142 globals.enable_npn.CopyToIfSet(&params->enable_npn);
1143 1143
1144 globals.enable_brotli.CopyToIfSet(&params->enable_brotli); 1144 globals.enable_brotli.CopyToIfSet(&params->enable_brotli);
1145 1145
1146 globals.enable_quic.CopyToIfSet(&params->enable_quic); 1146 globals.enable_quic.CopyToIfSet(&params->enable_quic);
1147 globals.disable_quic_when_connection_times_out_with_open_streams.CopyToIfSet(
1148 &params->disable_quic_when_connection_times_out_with_open_streams);
1147 globals.enable_quic_for_proxies.CopyToIfSet(&params->enable_quic_for_proxies); 1149 globals.enable_quic_for_proxies.CopyToIfSet(&params->enable_quic_for_proxies);
1148 globals.quic_always_require_handshake_confirmation.CopyToIfSet( 1150 globals.quic_always_require_handshake_confirmation.CopyToIfSet(
1149 &params->quic_always_require_handshake_confirmation); 1151 &params->quic_always_require_handshake_confirmation);
1150 globals.quic_disable_connection_pooling.CopyToIfSet( 1152 globals.quic_disable_connection_pooling.CopyToIfSet(
1151 &params->quic_disable_connection_pooling); 1153 &params->quic_disable_connection_pooling);
1152 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( 1154 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet(
1153 &params->quic_load_server_info_timeout_srtt_multiplier); 1155 &params->quic_load_server_info_timeout_srtt_multiplier);
1154 globals.quic_enable_connection_racing.CopyToIfSet( 1156 globals.quic_enable_connection_racing.CopyToIfSet(
1155 &params->quic_enable_connection_racing); 1157 &params->quic_enable_connection_racing);
1156 globals.quic_enable_non_blocking_io.CopyToIfSet( 1158 globals.quic_enable_non_blocking_io.CopyToIfSet(
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 1263
1262 void IOThread::ConfigureQuicGlobals( 1264 void IOThread::ConfigureQuicGlobals(
1263 const base::CommandLine& command_line, 1265 const base::CommandLine& command_line,
1264 base::StringPiece quic_trial_group, 1266 base::StringPiece quic_trial_group,
1265 const VariationParameters& quic_trial_params, 1267 const VariationParameters& quic_trial_params,
1266 bool quic_allowed_by_policy, 1268 bool quic_allowed_by_policy,
1267 IOThread::Globals* globals) { 1269 IOThread::Globals* globals) {
1268 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group, 1270 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group,
1269 quic_allowed_by_policy); 1271 quic_allowed_by_policy);
1270 globals->enable_quic.set(enable_quic); 1272 globals->enable_quic.set(enable_quic);
1273 globals->disable_quic_when_connection_times_out_with_open_streams.set(
1274 ShouldDisableQuicWhenConnectionTimesOutWithOpenStreams(quic_trial_params));
1271 bool enable_quic_for_proxies = ShouldEnableQuicForProxies( 1275 bool enable_quic_for_proxies = ShouldEnableQuicForProxies(
1272 command_line, quic_trial_group, quic_allowed_by_policy); 1276 command_line, quic_trial_group, quic_allowed_by_policy);
1273 globals->enable_quic_for_proxies.set(enable_quic_for_proxies); 1277 globals->enable_quic_for_proxies.set(enable_quic_for_proxies);
1274 globals->use_alternative_services.set( 1278 globals->use_alternative_services.set(
1275 ShouldQuicEnableAlternativeServices(command_line, quic_trial_params)); 1279 ShouldQuicEnableAlternativeServices(command_line, quic_trial_params));
1276 if (enable_quic) { 1280 if (enable_quic) {
1277 globals->quic_always_require_handshake_confirmation.set( 1281 globals->quic_always_require_handshake_confirmation.set(
1278 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); 1282 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params));
1279 globals->quic_disable_connection_pooling.set( 1283 globals->quic_disable_connection_pooling.set(
1280 ShouldQuicDisableConnectionPooling(quic_trial_params)); 1284 ShouldQuicDisableConnectionPooling(quic_trial_params));
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
1359 if (command_line.HasSwitch(switches::kOriginToForceQuicOn)) { 1363 if (command_line.HasSwitch(switches::kOriginToForceQuicOn)) {
1360 net::HostPortPair quic_origin = 1364 net::HostPortPair quic_origin =
1361 net::HostPortPair::FromString( 1365 net::HostPortPair::FromString(
1362 command_line.GetSwitchValueASCII(switches::kOriginToForceQuicOn)); 1366 command_line.GetSwitchValueASCII(switches::kOriginToForceQuicOn));
1363 if (!quic_origin.IsEmpty()) { 1367 if (!quic_origin.IsEmpty()) {
1364 globals->origin_to_force_quic_on.set(quic_origin); 1368 globals->origin_to_force_quic_on.set(quic_origin);
1365 } 1369 }
1366 } 1370 }
1367 } 1371 }
1368 1372
1373 bool IOThread::ShouldDisableQuicWhenConnectionTimesOutWithOpenStreams(
1374 const VariationParameters& quic_trial_params) {
1375 return base::LowerCaseEqualsASCII(
1376 GetVariationParam(quic_trial_params,
1377 "disable_quic_when_connection_times_out_with_open_streams"),
1378 "true");
1379 }
1380
1369 bool IOThread::ShouldEnableQuic(const base::CommandLine& command_line, 1381 bool IOThread::ShouldEnableQuic(const base::CommandLine& command_line,
1370 base::StringPiece quic_trial_group, 1382 base::StringPiece quic_trial_group,
1371 bool quic_allowed_by_policy) { 1383 bool quic_allowed_by_policy) {
1372 if (command_line.HasSwitch(switches::kDisableQuic) || !quic_allowed_by_policy) 1384 if (command_line.HasSwitch(switches::kDisableQuic) || !quic_allowed_by_policy)
1373 return false; 1385 return false;
1374 1386
1375 if (command_line.HasSwitch(switches::kEnableQuic)) 1387 if (command_line.HasSwitch(switches::kEnableQuic))
1376 return true; 1388 return true;
1377 1389
1378 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) || 1390 return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) ||
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1781 std::move(job_factory); 1793 std::move(job_factory);
1782 1794
1783 context->set_job_factory( 1795 context->set_job_factory(
1784 globals->proxy_script_fetcher_url_request_job_factory.get()); 1796 globals->proxy_script_fetcher_url_request_job_factory.get());
1785 1797
1786 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the 1798 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the
1787 // system URLRequestContext too. There's no reason this should be tied to a 1799 // system URLRequestContext too. There's no reason this should be tied to a
1788 // profile. 1800 // profile.
1789 return context; 1801 return context;
1790 } 1802 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698