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 <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/base64.h" | 10 #include "base/base64.h" |
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 ¶ms->enable_tcp_fast_open_for_ssl); | 1095 ¶ms->enable_tcp_fast_open_for_ssl); |
1096 | 1096 |
1097 globals.spdy_default_protocol.CopyToIfSet( | 1097 globals.spdy_default_protocol.CopyToIfSet( |
1098 ¶ms->spdy_default_protocol); | 1098 ¶ms->spdy_default_protocol); |
1099 globals.enable_spdy31.CopyToIfSet(¶ms->enable_spdy31); | 1099 globals.enable_spdy31.CopyToIfSet(¶ms->enable_spdy31); |
1100 globals.enable_http2.CopyToIfSet(¶ms->enable_http2); | 1100 globals.enable_http2.CopyToIfSet(¶ms->enable_http2); |
1101 globals.parse_alternative_services.CopyToIfSet( | 1101 globals.parse_alternative_services.CopyToIfSet( |
1102 ¶ms->parse_alternative_services); | 1102 ¶ms->parse_alternative_services); |
1103 globals.enable_alternative_service_with_different_host.CopyToIfSet( | 1103 globals.enable_alternative_service_with_different_host.CopyToIfSet( |
1104 ¶ms->enable_alternative_service_with_different_host); | 1104 ¶ms->enable_alternative_service_with_different_host); |
| 1105 globals.alternative_service_probability_threshold.CopyToIfSet( |
| 1106 ¶ms->alternative_service_probability_threshold); |
1105 | 1107 |
1106 globals.enable_npn.CopyToIfSet(¶ms->enable_npn); | 1108 globals.enable_npn.CopyToIfSet(¶ms->enable_npn); |
1107 | 1109 |
1108 globals.enable_brotli.CopyToIfSet(¶ms->enable_brotli); | 1110 globals.enable_brotli.CopyToIfSet(¶ms->enable_brotli); |
1109 | 1111 |
1110 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); | 1112 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); |
1111 globals.disable_quic_on_timeout_with_open_streams.CopyToIfSet( | 1113 globals.disable_quic_on_timeout_with_open_streams.CopyToIfSet( |
1112 ¶ms->disable_quic_on_timeout_with_open_streams); | 1114 ¶ms->disable_quic_on_timeout_with_open_streams); |
1113 globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); | 1115 globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); |
1114 globals.quic_always_require_handshake_confirmation.CopyToIfSet( | 1116 globals.quic_always_require_handshake_confirmation.CopyToIfSet( |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1321 quic_user_agent_id.append(content::BuildOSCpuInfo()); | 1323 quic_user_agent_id.append(content::BuildOSCpuInfo()); |
1322 globals->quic_user_agent_id.set(quic_user_agent_id); | 1324 globals->quic_user_agent_id.set(quic_user_agent_id); |
1323 | 1325 |
1324 net::QuicVersion version = GetQuicVersion(command_line, quic_trial_params); | 1326 net::QuicVersion version = GetQuicVersion(command_line, quic_trial_params); |
1325 if (version != net::QUIC_VERSION_UNSUPPORTED) { | 1327 if (version != net::QUIC_VERSION_UNSUPPORTED) { |
1326 net::QuicVersionVector supported_versions; | 1328 net::QuicVersionVector supported_versions; |
1327 supported_versions.push_back(version); | 1329 supported_versions.push_back(version); |
1328 globals->quic_supported_versions.set(supported_versions); | 1330 globals->quic_supported_versions.set(supported_versions); |
1329 } | 1331 } |
1330 | 1332 |
| 1333 double threshold = GetAlternativeProtocolProbabilityThreshold( |
| 1334 command_line, quic_trial_params); |
| 1335 if (threshold >=0 && threshold <= 1) { |
| 1336 globals->alternative_service_probability_threshold.set(threshold); |
| 1337 globals->http_server_properties->SetAlternativeServiceProbabilityThreshold( |
| 1338 threshold); |
| 1339 } |
| 1340 |
1331 if (command_line.HasSwitch(switches::kOriginToForceQuicOn)) { | 1341 if (command_line.HasSwitch(switches::kOriginToForceQuicOn)) { |
1332 net::HostPortPair quic_origin = | 1342 net::HostPortPair quic_origin = |
1333 net::HostPortPair::FromString( | 1343 net::HostPortPair::FromString( |
1334 command_line.GetSwitchValueASCII(switches::kOriginToForceQuicOn)); | 1344 command_line.GetSwitchValueASCII(switches::kOriginToForceQuicOn)); |
1335 if (!quic_origin.IsEmpty()) { | 1345 if (!quic_origin.IsEmpty()) { |
1336 globals->origin_to_force_quic_on.set(quic_origin); | 1346 globals->origin_to_force_quic_on.set(quic_origin); |
1337 } | 1347 } |
1338 } | 1348 } |
1339 } | 1349 } |
1340 | 1350 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1398 | 1408 |
1399 VariationParameters::const_iterator it = | 1409 VariationParameters::const_iterator it = |
1400 quic_trial_params.find("connection_options"); | 1410 quic_trial_params.find("connection_options"); |
1401 if (it == quic_trial_params.end()) { | 1411 if (it == quic_trial_params.end()) { |
1402 return net::QuicTagVector(); | 1412 return net::QuicTagVector(); |
1403 } | 1413 } |
1404 | 1414 |
1405 return net::QuicUtils::ParseQuicConnectionOptions(it->second); | 1415 return net::QuicUtils::ParseQuicConnectionOptions(it->second); |
1406 } | 1416 } |
1407 | 1417 |
| 1418 double IOThread::GetAlternativeProtocolProbabilityThreshold( |
| 1419 const base::CommandLine& command_line, |
| 1420 const VariationParameters& quic_trial_params) { |
| 1421 double value; |
| 1422 if (command_line.HasSwitch( |
| 1423 switches::kAlternativeServiceProbabilityThreshold)) { |
| 1424 if (base::StringToDouble( |
| 1425 command_line.GetSwitchValueASCII( |
| 1426 switches::kAlternativeServiceProbabilityThreshold), |
| 1427 &value)) { |
| 1428 return value; |
| 1429 } |
| 1430 } |
| 1431 if (command_line.HasSwitch(switches::kEnableQuic)) { |
| 1432 return 0; |
| 1433 } |
| 1434 // TODO(bnc): Remove when new parameter name rolls out and server |
| 1435 // configuration is changed. |
| 1436 if (base::StringToDouble( |
| 1437 GetVariationParam(quic_trial_params, |
| 1438 "alternate_protocol_probability_threshold"), |
| 1439 &value)) { |
| 1440 return value; |
| 1441 } |
| 1442 if (base::StringToDouble( |
| 1443 GetVariationParam(quic_trial_params, |
| 1444 "alternative_service_probability_threshold"), |
| 1445 &value)) { |
| 1446 return value; |
| 1447 } |
| 1448 return -1; |
| 1449 } |
| 1450 |
1408 bool IOThread::ShouldQuicAlwaysRequireHandshakeConfirmation( | 1451 bool IOThread::ShouldQuicAlwaysRequireHandshakeConfirmation( |
1409 const VariationParameters& quic_trial_params) { | 1452 const VariationParameters& quic_trial_params) { |
1410 return base::LowerCaseEqualsASCII( | 1453 return base::LowerCaseEqualsASCII( |
1411 GetVariationParam(quic_trial_params, | 1454 GetVariationParam(quic_trial_params, |
1412 "always_require_handshake_confirmation"), | 1455 "always_require_handshake_confirmation"), |
1413 "true"); | 1456 "true"); |
1414 } | 1457 } |
1415 | 1458 |
1416 bool IOThread::ShouldQuicDisableConnectionPooling( | 1459 bool IOThread::ShouldQuicDisableConnectionPooling( |
1417 const VariationParameters& quic_trial_params) { | 1460 const VariationParameters& quic_trial_params) { |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1740 std::move(job_factory); | 1783 std::move(job_factory); |
1741 | 1784 |
1742 context->set_job_factory( | 1785 context->set_job_factory( |
1743 globals->proxy_script_fetcher_url_request_job_factory.get()); | 1786 globals->proxy_script_fetcher_url_request_job_factory.get()); |
1744 | 1787 |
1745 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the | 1788 // TODO(rtenneti): We should probably use HttpServerPropertiesManager for the |
1746 // system URLRequestContext too. There's no reason this should be tied to a | 1789 // system URLRequestContext too. There's no reason this should be tied to a |
1747 // profile. | 1790 // profile. |
1748 return context; | 1791 return context; |
1749 } | 1792 } |
OLD | NEW |