Index: chrome/browser/io_thread.cc |
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc |
index a8be562eed41749215eea52175cdf0b7f97c4b17..b8dda317216bb3cb71926fac76f54c22622c89bc 100644 |
--- a/chrome/browser/io_thread.cc |
+++ b/chrome/browser/io_thread.cc |
@@ -1102,6 +1102,8 @@ |
¶ms->parse_alternative_services); |
globals.enable_alternative_service_with_different_host.CopyToIfSet( |
¶ms->enable_alternative_service_with_different_host); |
+ globals.alternative_service_probability_threshold.CopyToIfSet( |
+ ¶ms->alternative_service_probability_threshold); |
globals.enable_npn.CopyToIfSet(¶ms->enable_npn); |
@@ -1328,6 +1330,14 @@ |
globals->quic_supported_versions.set(supported_versions); |
} |
+ double threshold = GetAlternativeProtocolProbabilityThreshold( |
+ command_line, quic_trial_params); |
+ if (threshold >=0 && threshold <= 1) { |
+ globals->alternative_service_probability_threshold.set(threshold); |
+ globals->http_server_properties->SetAlternativeServiceProbabilityThreshold( |
+ threshold); |
+ } |
+ |
if (command_line.HasSwitch(switches::kOriginToForceQuicOn)) { |
net::HostPortPair quic_origin = |
net::HostPortPair::FromString( |
@@ -1403,6 +1413,39 @@ |
} |
return net::QuicUtils::ParseQuicConnectionOptions(it->second); |
+} |
+ |
+double IOThread::GetAlternativeProtocolProbabilityThreshold( |
+ const base::CommandLine& command_line, |
+ const VariationParameters& quic_trial_params) { |
+ double value; |
+ if (command_line.HasSwitch( |
+ switches::kAlternativeServiceProbabilityThreshold)) { |
+ if (base::StringToDouble( |
+ command_line.GetSwitchValueASCII( |
+ switches::kAlternativeServiceProbabilityThreshold), |
+ &value)) { |
+ return value; |
+ } |
+ } |
+ if (command_line.HasSwitch(switches::kEnableQuic)) { |
+ return 0; |
+ } |
+ // TODO(bnc): Remove when new parameter name rolls out and server |
+ // configuration is changed. |
+ if (base::StringToDouble( |
+ GetVariationParam(quic_trial_params, |
+ "alternate_protocol_probability_threshold"), |
+ &value)) { |
+ return value; |
+ } |
+ if (base::StringToDouble( |
+ GetVariationParam(quic_trial_params, |
+ "alternative_service_probability_threshold"), |
+ &value)) { |
+ return value; |
+ } |
+ return -1; |
} |
bool IOThread::ShouldQuicAlwaysRequireHandshakeConfirmation( |