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

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

Issue 524463004: Adds plumbing for always requiring handshake confirmation in QUIC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More nits fixed, test added, and formatting. Created 6 years, 3 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 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 globals.use_alternate_protocols.CopyToIfSet( 1039 globals.use_alternate_protocols.CopyToIfSet(
1040 &params->use_alternate_protocols); 1040 &params->use_alternate_protocols);
1041 globals.alternate_protocol_probability_threshold.CopyToIfSet( 1041 globals.alternate_protocol_probability_threshold.CopyToIfSet(
1042 &params->alternate_protocol_probability_threshold); 1042 &params->alternate_protocol_probability_threshold);
1043 globals.enable_websocket_over_spdy.CopyToIfSet( 1043 globals.enable_websocket_over_spdy.CopyToIfSet(
1044 &params->enable_websocket_over_spdy); 1044 &params->enable_websocket_over_spdy);
1045 1045
1046 globals.enable_quic.CopyToIfSet(&params->enable_quic); 1046 globals.enable_quic.CopyToIfSet(&params->enable_quic);
1047 globals.enable_quic_time_based_loss_detection.CopyToIfSet( 1047 globals.enable_quic_time_based_loss_detection.CopyToIfSet(
1048 &params->enable_quic_time_based_loss_detection); 1048 &params->enable_quic_time_based_loss_detection);
1049 globals.quic_always_require_handshake_confirmation.CopyToIfSet(
1050 &params->quic_always_require_handshake_confirmation);
1049 globals.enable_quic_port_selection.CopyToIfSet( 1051 globals.enable_quic_port_selection.CopyToIfSet(
1050 &params->enable_quic_port_selection); 1052 &params->enable_quic_port_selection);
1051 globals.quic_max_packet_length.CopyToIfSet(&params->quic_max_packet_length); 1053 globals.quic_max_packet_length.CopyToIfSet(&params->quic_max_packet_length);
1052 globals.quic_user_agent_id.CopyToIfSet(&params->quic_user_agent_id); 1054 globals.quic_user_agent_id.CopyToIfSet(&params->quic_user_agent_id);
1053 globals.quic_supported_versions.CopyToIfSet( 1055 globals.quic_supported_versions.CopyToIfSet(
1054 &params->quic_supported_versions); 1056 &params->quic_supported_versions);
1055 params->quic_connection_options = globals.quic_connection_options; 1057 params->quic_connection_options = globals.quic_connection_options;
1056 1058
1057 globals.origin_to_force_quic_on.CopyToIfSet( 1059 globals.origin_to_force_quic_on.CopyToIfSet(
1058 &params->origin_to_force_quic_on); 1060 &params->origin_to_force_quic_on);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 const base::CommandLine& command_line, 1154 const base::CommandLine& command_line,
1153 base::StringPiece quic_trial_group, 1155 base::StringPiece quic_trial_group,
1154 const VariationParameters& quic_trial_params, 1156 const VariationParameters& quic_trial_params,
1155 IOThread::Globals* globals) { 1157 IOThread::Globals* globals) {
1156 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); 1158 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group);
1157 globals->enable_quic.set(enable_quic); 1159 globals->enable_quic.set(enable_quic);
1158 if (enable_quic) { 1160 if (enable_quic) {
1159 globals->enable_quic_time_based_loss_detection.set( 1161 globals->enable_quic_time_based_loss_detection.set(
1160 ShouldEnableQuicTimeBasedLossDetection(command_line, quic_trial_group, 1162 ShouldEnableQuicTimeBasedLossDetection(command_line, quic_trial_group,
1161 quic_trial_params)); 1163 quic_trial_params));
1164 globals->quic_always_require_handshake_confirmation.set(
1165 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params));
1162 globals->enable_quic_port_selection.set( 1166 globals->enable_quic_port_selection.set(
1163 ShouldEnableQuicPortSelection(command_line)); 1167 ShouldEnableQuicPortSelection(command_line));
1164 globals->quic_connection_options = 1168 globals->quic_connection_options =
1165 GetQuicConnectionOptions(command_line, quic_trial_params); 1169 GetQuicConnectionOptions(command_line, quic_trial_params);
1166 if (ShouldEnableQuicPacing(command_line, quic_trial_group, 1170 if (ShouldEnableQuicPacing(command_line, quic_trial_group,
1167 quic_trial_params)) { 1171 quic_trial_params)) {
1168 globals->quic_connection_options.push_back(net::kPACE); 1172 globals->quic_connection_options.push_back(net::kPACE);
1169 } 1173 }
1170 } 1174 }
1171 1175
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 if (LowerCaseEqualsASCII( 1331 if (LowerCaseEqualsASCII(
1328 GetVariationParam(quic_trial_params, "enable_time_based_loss_detection"), 1332 GetVariationParam(quic_trial_params, "enable_time_based_loss_detection"),
1329 "true")) 1333 "true"))
1330 return true; 1334 return true;
1331 1335
1332 return quic_trial_group.ends_with( 1336 return quic_trial_group.ends_with(
1333 kQuicFieldTrialTimeBasedLossDetectionSuffix); 1337 kQuicFieldTrialTimeBasedLossDetectionSuffix);
1334 } 1338 }
1335 1339
1336 // static 1340 // static
1341 bool IOThread::ShouldQuicAlwaysRequireHandshakeConfirmation(
1342 const VariationParameters& quic_trial_params) {
1343 return LowerCaseEqualsASCII(
1344 GetVariationParam(quic_trial_params,
1345 "always_require_handshake_confirmation"),
1346 "true");
1347 }
1348
1349 // static
1337 size_t IOThread::GetQuicMaxPacketLength( 1350 size_t IOThread::GetQuicMaxPacketLength(
1338 const CommandLine& command_line, 1351 const CommandLine& command_line,
1339 base::StringPiece quic_trial_group, 1352 base::StringPiece quic_trial_group,
1340 const VariationParameters& quic_trial_params) { 1353 const VariationParameters& quic_trial_params) {
1341 if (command_line.HasSwitch(switches::kQuicMaxPacketLength)) { 1354 if (command_line.HasSwitch(switches::kQuicMaxPacketLength)) {
1342 unsigned value; 1355 unsigned value;
1343 if (!base::StringToUint( 1356 if (!base::StringToUint(
1344 command_line.GetSwitchValueASCII(switches::kQuicMaxPacketLength), 1357 command_line.GetSwitchValueASCII(switches::kQuicMaxPacketLength),
1345 &value)) { 1358 &value)) {
1346 return 0; 1359 return 0;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1392 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); 1405 net::QuicVersionVector supported_versions = net::QuicSupportedVersions();
1393 for (size_t i = 0; i < supported_versions.size(); ++i) { 1406 for (size_t i = 0; i < supported_versions.size(); ++i) {
1394 net::QuicVersion version = supported_versions[i]; 1407 net::QuicVersion version = supported_versions[i];
1395 if (net::QuicVersionToString(version) == quic_version) { 1408 if (net::QuicVersionToString(version) == quic_version) {
1396 return version; 1409 return version;
1397 } 1410 }
1398 } 1411 }
1399 1412
1400 return net::QUIC_VERSION_UNSUPPORTED; 1413 return net::QUIC_VERSION_UNSUPPORTED;
1401 } 1414 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698