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 <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 1006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 ¶ms->use_alternate_protocols); | 1017 ¶ms->use_alternate_protocols); |
1018 globals.alternate_protocol_probability_threshold.CopyToIfSet( | 1018 globals.alternate_protocol_probability_threshold.CopyToIfSet( |
1019 ¶ms->alternate_protocol_probability_threshold); | 1019 ¶ms->alternate_protocol_probability_threshold); |
1020 | 1020 |
1021 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); | 1021 globals.enable_quic.CopyToIfSet(¶ms->enable_quic); |
1022 globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); | 1022 globals.enable_quic_for_proxies.CopyToIfSet(¶ms->enable_quic_for_proxies); |
1023 globals.quic_always_require_handshake_confirmation.CopyToIfSet( | 1023 globals.quic_always_require_handshake_confirmation.CopyToIfSet( |
1024 ¶ms->quic_always_require_handshake_confirmation); | 1024 ¶ms->quic_always_require_handshake_confirmation); |
1025 globals.quic_disable_connection_pooling.CopyToIfSet( | 1025 globals.quic_disable_connection_pooling.CopyToIfSet( |
1026 ¶ms->quic_disable_connection_pooling); | 1026 ¶ms->quic_disable_connection_pooling); |
1027 globals.quic_load_server_info_timeout_ms.CopyToIfSet( | |
1028 ¶ms->quic_load_server_info_timeout_ms); | |
1029 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( | 1027 globals.quic_load_server_info_timeout_srtt_multiplier.CopyToIfSet( |
1030 ¶ms->quic_load_server_info_timeout_srtt_multiplier); | 1028 ¶ms->quic_load_server_info_timeout_srtt_multiplier); |
1031 globals.quic_enable_truncated_connection_ids.CopyToIfSet( | |
1032 ¶ms->quic_enable_truncated_connection_ids); | |
1033 globals.quic_enable_connection_racing.CopyToIfSet( | 1029 globals.quic_enable_connection_racing.CopyToIfSet( |
1034 ¶ms->quic_enable_connection_racing); | 1030 ¶ms->quic_enable_connection_racing); |
1035 globals.quic_enable_non_blocking_io.CopyToIfSet( | 1031 globals.quic_enable_non_blocking_io.CopyToIfSet( |
1036 ¶ms->quic_enable_non_blocking_io); | 1032 ¶ms->quic_enable_non_blocking_io); |
1037 globals.quic_disable_disk_cache.CopyToIfSet( | 1033 globals.quic_disable_disk_cache.CopyToIfSet( |
1038 ¶ms->quic_disable_disk_cache); | 1034 ¶ms->quic_disable_disk_cache); |
1039 globals.quic_socket_receive_buffer_size.CopyToIfSet( | 1035 globals.quic_socket_receive_buffer_size.CopyToIfSet( |
1040 ¶ms->quic_socket_receive_buffer_size); | 1036 ¶ms->quic_socket_receive_buffer_size); |
1041 globals.enable_quic_port_selection.CopyToIfSet( | 1037 globals.enable_quic_port_selection.CopyToIfSet( |
1042 ¶ms->enable_quic_port_selection); | 1038 ¶ms->enable_quic_port_selection); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); | 1145 bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); |
1150 globals->enable_quic.set(enable_quic); | 1146 globals->enable_quic.set(enable_quic); |
1151 bool enable_quic_for_proxies = ShouldEnableQuicForProxies(command_line, | 1147 bool enable_quic_for_proxies = ShouldEnableQuicForProxies(command_line, |
1152 quic_trial_group); | 1148 quic_trial_group); |
1153 globals->enable_quic_for_proxies.set(enable_quic_for_proxies); | 1149 globals->enable_quic_for_proxies.set(enable_quic_for_proxies); |
1154 if (enable_quic) { | 1150 if (enable_quic) { |
1155 globals->quic_always_require_handshake_confirmation.set( | 1151 globals->quic_always_require_handshake_confirmation.set( |
1156 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); | 1152 ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); |
1157 globals->quic_disable_connection_pooling.set( | 1153 globals->quic_disable_connection_pooling.set( |
1158 ShouldQuicDisableConnectionPooling(quic_trial_params)); | 1154 ShouldQuicDisableConnectionPooling(quic_trial_params)); |
1159 int load_server_info_timeout_ms = | |
1160 GetQuicLoadServerInfoTimeout(quic_trial_params); | |
1161 if (load_server_info_timeout_ms != 0) { | |
1162 globals->quic_load_server_info_timeout_ms.set( | |
1163 load_server_info_timeout_ms); | |
1164 } | |
1165 globals->quic_enable_truncated_connection_ids.set( | |
1166 ShouldQuicEnableTruncatedConnectionIds(quic_trial_params)); | |
1167 globals->quic_enable_connection_racing.set( | |
1168 ShouldQuicEnableConnectionRacing(quic_trial_params)); | |
1169 int receive_buffer_size = GetQuicSocketReceiveBufferSize(quic_trial_params); | 1155 int receive_buffer_size = GetQuicSocketReceiveBufferSize(quic_trial_params); |
1170 if (receive_buffer_size != 0) { | 1156 if (receive_buffer_size != 0) { |
1171 globals->quic_socket_receive_buffer_size.set(receive_buffer_size); | 1157 globals->quic_socket_receive_buffer_size.set(receive_buffer_size); |
1172 } | 1158 } |
1173 float load_server_info_timeout_srtt_multiplier = | 1159 float load_server_info_timeout_srtt_multiplier = |
1174 GetQuicLoadServerInfoTimeoutSrttMultiplier(quic_trial_params); | 1160 GetQuicLoadServerInfoTimeoutSrttMultiplier(quic_trial_params); |
1175 if (load_server_info_timeout_srtt_multiplier != 0) { | 1161 if (load_server_info_timeout_srtt_multiplier != 0) { |
1176 globals->quic_load_server_info_timeout_srtt_multiplier.set( | 1162 globals->quic_load_server_info_timeout_srtt_multiplier.set( |
1177 load_server_info_timeout_srtt_multiplier); | 1163 load_server_info_timeout_srtt_multiplier); |
1178 } | 1164 } |
1179 globals->quic_enable_truncated_connection_ids.set( | |
1180 ShouldQuicEnableTruncatedConnectionIds(quic_trial_params)); | |
1181 globals->quic_enable_connection_racing.set( | 1165 globals->quic_enable_connection_racing.set( |
1182 ShouldQuicEnableConnectionRacing(quic_trial_params)); | 1166 ShouldQuicEnableConnectionRacing(quic_trial_params)); |
1183 globals->quic_enable_non_blocking_io.set( | 1167 globals->quic_enable_non_blocking_io.set( |
1184 ShouldQuicEnableNonBlockingIO(quic_trial_params)); | 1168 ShouldQuicEnableNonBlockingIO(quic_trial_params)); |
1185 globals->quic_disable_disk_cache.set( | 1169 globals->quic_disable_disk_cache.set( |
1186 ShouldQuicDisableDiskCache(quic_trial_params)); | 1170 ShouldQuicDisableDiskCache(quic_trial_params)); |
1187 globals->enable_quic_port_selection.set( | 1171 globals->enable_quic_port_selection.set( |
1188 ShouldEnableQuicPortSelection(command_line)); | 1172 ShouldEnableQuicPortSelection(command_line)); |
1189 globals->quic_connection_options = | 1173 globals->quic_connection_options = |
1190 GetQuicConnectionOptions(command_line, quic_trial_params); | 1174 GetQuicConnectionOptions(command_line, quic_trial_params); |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1342 | 1326 |
1343 // static | 1327 // static |
1344 bool IOThread::ShouldQuicDisableConnectionPooling( | 1328 bool IOThread::ShouldQuicDisableConnectionPooling( |
1345 const VariationParameters& quic_trial_params) { | 1329 const VariationParameters& quic_trial_params) { |
1346 return LowerCaseEqualsASCII( | 1330 return LowerCaseEqualsASCII( |
1347 GetVariationParam(quic_trial_params, "disable_connection_pooling"), | 1331 GetVariationParam(quic_trial_params, "disable_connection_pooling"), |
1348 "true"); | 1332 "true"); |
1349 } | 1333 } |
1350 | 1334 |
1351 // static | 1335 // static |
1352 int IOThread::GetQuicLoadServerInfoTimeout( | |
1353 const VariationParameters& quic_trial_params) { | |
1354 int value; | |
1355 if (base::StringToInt(GetVariationParam(quic_trial_params, | |
1356 "load_server_info_timeout"), | |
1357 &value)) { | |
1358 return value; | |
1359 } | |
1360 return 0; | |
1361 } | |
1362 | |
1363 // static | |
1364 float IOThread::GetQuicLoadServerInfoTimeoutSrttMultiplier( | 1336 float IOThread::GetQuicLoadServerInfoTimeoutSrttMultiplier( |
1365 const VariationParameters& quic_trial_params) { | 1337 const VariationParameters& quic_trial_params) { |
1366 double value; | 1338 double value; |
1367 if (base::StringToDouble(GetVariationParam(quic_trial_params, | 1339 if (base::StringToDouble(GetVariationParam(quic_trial_params, |
1368 "load_server_info_time_to_srtt"), | 1340 "load_server_info_time_to_srtt"), |
1369 &value)) { | 1341 &value)) { |
1370 return (float)value; | 1342 return (float)value; |
1371 } | 1343 } |
1372 return 0.0f; | 1344 return 0.0f; |
1373 } | 1345 } |
1374 | 1346 |
1375 // static | 1347 // static |
1376 bool IOThread::ShouldQuicEnableTruncatedConnectionIds( | |
1377 const VariationParameters& quic_trial_params) { | |
1378 return LowerCaseEqualsASCII( | |
1379 GetVariationParam(quic_trial_params, "enable_truncated_connection_ids"), | |
1380 "true"); | |
1381 } | |
1382 | |
1383 // static | |
1384 bool IOThread::ShouldQuicEnableConnectionRacing( | 1348 bool IOThread::ShouldQuicEnableConnectionRacing( |
1385 const VariationParameters& quic_trial_params) { | 1349 const VariationParameters& quic_trial_params) { |
1386 return LowerCaseEqualsASCII( | 1350 return LowerCaseEqualsASCII( |
1387 GetVariationParam(quic_trial_params, "enable_connection_racing"), | 1351 GetVariationParam(quic_trial_params, "enable_connection_racing"), |
1388 "true"); | 1352 "true"); |
1389 } | 1353 } |
1390 | 1354 |
1391 // static | 1355 // static |
1392 bool IOThread::ShouldQuicEnableNonBlockingIO( | 1356 bool IOThread::ShouldQuicEnableNonBlockingIO( |
1393 const VariationParameters& quic_trial_params) { | 1357 const VariationParameters& quic_trial_params) { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1455 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); | 1419 net::QuicVersionVector supported_versions = net::QuicSupportedVersions(); |
1456 for (size_t i = 0; i < supported_versions.size(); ++i) { | 1420 for (size_t i = 0; i < supported_versions.size(); ++i) { |
1457 net::QuicVersion version = supported_versions[i]; | 1421 net::QuicVersion version = supported_versions[i]; |
1458 if (net::QuicVersionToString(version) == quic_version) { | 1422 if (net::QuicVersionToString(version) == quic_version) { |
1459 return version; | 1423 return version; |
1460 } | 1424 } |
1461 } | 1425 } |
1462 | 1426 |
1463 return net::QUIC_VERSION_UNSUPPORTED; | 1427 return net::QUIC_VERSION_UNSUPPORTED; |
1464 } | 1428 } |
OLD | NEW |