| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "components/network_session_configurator/network_session_configurator.h
" | 5 #include "components/network_session_configurator/network_session_configurator.h
" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <unordered_set> | 8 #include <unordered_set> |
| 9 | 9 |
| 10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 const VariationParameters& quic_trial_params) { | 127 const VariationParameters& quic_trial_params) { |
| 128 VariationParameters::const_iterator it = | 128 VariationParameters::const_iterator it = |
| 129 quic_trial_params.find("connection_options"); | 129 quic_trial_params.find("connection_options"); |
| 130 if (it == quic_trial_params.end()) { | 130 if (it == quic_trial_params.end()) { |
| 131 return net::QuicTagVector(); | 131 return net::QuicTagVector(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 return net::ParseQuicConnectionOptions(it->second); | 134 return net::ParseQuicConnectionOptions(it->second); |
| 135 } | 135 } |
| 136 | 136 |
| 137 float GetQuicLoadServerInfoTimeoutSrttMultiplier( |
| 138 const VariationParameters& quic_trial_params) { |
| 139 double value; |
| 140 if (base::StringToDouble( |
| 141 GetVariationParam(quic_trial_params, "load_server_info_time_to_srtt"), |
| 142 &value)) { |
| 143 return static_cast<float>(value); |
| 144 } |
| 145 return 0.0f; |
| 146 } |
| 147 |
| 148 bool ShouldQuicEnableConnectionRacing( |
| 149 const VariationParameters& quic_trial_params) { |
| 150 return base::LowerCaseEqualsASCII( |
| 151 GetVariationParam(quic_trial_params, "enable_connection_racing"), "true"); |
| 152 } |
| 153 |
| 137 bool ShouldQuicEnableNonBlockingIO( | 154 bool ShouldQuicEnableNonBlockingIO( |
| 138 const VariationParameters& quic_trial_params) { | 155 const VariationParameters& quic_trial_params) { |
| 139 return base::LowerCaseEqualsASCII( | 156 return base::LowerCaseEqualsASCII( |
| 140 GetVariationParam(quic_trial_params, "enable_non_blocking_io"), "true"); | 157 GetVariationParam(quic_trial_params, "enable_non_blocking_io"), "true"); |
| 141 } | 158 } |
| 142 | 159 |
| 160 bool ShouldQuicDisableDiskCache(const VariationParameters& quic_trial_params) { |
| 161 return base::LowerCaseEqualsASCII( |
| 162 GetVariationParam(quic_trial_params, "disable_disk_cache"), "true"); |
| 163 } |
| 164 |
| 143 bool ShouldForceHolBlocking(const VariationParameters& quic_trial_params) { | 165 bool ShouldForceHolBlocking(const VariationParameters& quic_trial_params) { |
| 144 return base::LowerCaseEqualsASCII( | 166 return base::LowerCaseEqualsASCII( |
| 145 GetVariationParam(quic_trial_params, "force_hol_blocking"), "true"); | 167 GetVariationParam(quic_trial_params, "force_hol_blocking"), "true"); |
| 146 } | 168 } |
| 147 | 169 |
| 148 bool ShouldQuicCloseSessionsOnIpChange( | 170 bool ShouldQuicCloseSessionsOnIpChange( |
| 149 const VariationParameters& quic_trial_params) { | 171 const VariationParameters& quic_trial_params) { |
| 150 return base::LowerCaseEqualsASCII( | 172 return base::LowerCaseEqualsASCII( |
| 151 GetVariationParam(quic_trial_params, "close_sessions_on_ip_change"), | 173 GetVariationParam(quic_trial_params, "close_sessions_on_ip_change"), |
| 152 "true"); | 174 "true"); |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 params->mark_quic_broken_when_network_blackholes = | 288 params->mark_quic_broken_when_network_blackholes = |
| 267 ShouldMarkQuicBrokenWhenNetworkBlackholes(quic_trial_params); | 289 ShouldMarkQuicBrokenWhenNetworkBlackholes(quic_trial_params); |
| 268 | 290 |
| 269 params->enable_server_push_cancellation = | 291 params->enable_server_push_cancellation = |
| 270 ShouldEnableServerPushCancelation(quic_trial_params); | 292 ShouldEnableServerPushCancelation(quic_trial_params); |
| 271 | 293 |
| 272 params->retry_without_alt_svc_on_quic_errors = | 294 params->retry_without_alt_svc_on_quic_errors = |
| 273 ShouldRetryWithoutAltSvcOnQuicErrors(quic_trial_params); | 295 ShouldRetryWithoutAltSvcOnQuicErrors(quic_trial_params); |
| 274 | 296 |
| 275 if (params->enable_quic) { | 297 if (params->enable_quic) { |
| 298 float load_server_info_timeout_srtt_multiplier = |
| 299 GetQuicLoadServerInfoTimeoutSrttMultiplier(quic_trial_params); |
| 300 if (load_server_info_timeout_srtt_multiplier != 0) { |
| 301 params->quic_load_server_info_timeout_srtt_multiplier = |
| 302 load_server_info_timeout_srtt_multiplier; |
| 303 } |
| 304 params->quic_enable_connection_racing = |
| 305 ShouldQuicEnableConnectionRacing(quic_trial_params); |
| 276 params->quic_enable_non_blocking_io = | 306 params->quic_enable_non_blocking_io = |
| 277 ShouldQuicEnableNonBlockingIO(quic_trial_params); | 307 ShouldQuicEnableNonBlockingIO(quic_trial_params); |
| 308 params->quic_disable_disk_cache = |
| 309 ShouldQuicDisableDiskCache(quic_trial_params); |
| 278 params->quic_force_hol_blocking = ShouldForceHolBlocking(quic_trial_params); | 310 params->quic_force_hol_blocking = ShouldForceHolBlocking(quic_trial_params); |
| 279 params->quic_connection_options = | 311 params->quic_connection_options = |
| 280 GetQuicConnectionOptions(quic_trial_params); | 312 GetQuicConnectionOptions(quic_trial_params); |
| 281 params->quic_close_sessions_on_ip_change = | 313 params->quic_close_sessions_on_ip_change = |
| 282 ShouldQuicCloseSessionsOnIpChange(quic_trial_params); | 314 ShouldQuicCloseSessionsOnIpChange(quic_trial_params); |
| 283 int idle_connection_timeout_seconds = | 315 int idle_connection_timeout_seconds = |
| 284 GetQuicIdleConnectionTimeoutSeconds(quic_trial_params); | 316 GetQuicIdleConnectionTimeoutSeconds(quic_trial_params); |
| 285 if (idle_connection_timeout_seconds != 0) { | 317 if (idle_connection_timeout_seconds != 0) { |
| 286 params->quic_idle_connection_timeout_seconds = | 318 params->quic_idle_connection_timeout_seconds = |
| 287 idle_connection_timeout_seconds; | 319 idle_connection_timeout_seconds; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 379 ConfigureTCPFastOpenParams(tfo_trial_group, params); | 411 ConfigureTCPFastOpenParams(tfo_trial_group, params); |
| 380 | 412 |
| 381 std::map<std::string, std::string> proxy_preconnects_trial_params; | 413 std::map<std::string, std::string> proxy_preconnects_trial_params; |
| 382 variations::GetVariationParams("NetProxyPreconnects", | 414 variations::GetVariationParams("NetProxyPreconnects", |
| 383 &proxy_preconnects_trial_params); | 415 &proxy_preconnects_trial_params); |
| 384 ConfigureOptimizePreconnectsToProxiesParams(proxy_preconnects_trial_params, | 416 ConfigureOptimizePreconnectsToProxiesParams(proxy_preconnects_trial_params, |
| 385 params); | 417 params); |
| 386 } | 418 } |
| 387 | 419 |
| 388 } // namespace network_session_configurator | 420 } // namespace network_session_configurator |
| OLD | NEW |