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 | |
154 bool ShouldQuicEnableNonBlockingIO( | 137 bool ShouldQuicEnableNonBlockingIO( |
155 const VariationParameters& quic_trial_params) { | 138 const VariationParameters& quic_trial_params) { |
156 return base::LowerCaseEqualsASCII( | 139 return base::LowerCaseEqualsASCII( |
157 GetVariationParam(quic_trial_params, "enable_non_blocking_io"), "true"); | 140 GetVariationParam(quic_trial_params, "enable_non_blocking_io"), "true"); |
158 } | 141 } |
159 | 142 |
160 bool ShouldQuicDisableDiskCache(const VariationParameters& quic_trial_params) { | |
161 return base::LowerCaseEqualsASCII( | |
162 GetVariationParam(quic_trial_params, "disable_disk_cache"), "true"); | |
163 } | |
164 | |
165 bool ShouldForceHolBlocking(const VariationParameters& quic_trial_params) { | 143 bool ShouldForceHolBlocking(const VariationParameters& quic_trial_params) { |
166 return base::LowerCaseEqualsASCII( | 144 return base::LowerCaseEqualsASCII( |
167 GetVariationParam(quic_trial_params, "force_hol_blocking"), "true"); | 145 GetVariationParam(quic_trial_params, "force_hol_blocking"), "true"); |
168 } | 146 } |
169 | 147 |
170 bool ShouldQuicCloseSessionsOnIpChange( | 148 bool ShouldQuicCloseSessionsOnIpChange( |
171 const VariationParameters& quic_trial_params) { | 149 const VariationParameters& quic_trial_params) { |
172 return base::LowerCaseEqualsASCII( | 150 return base::LowerCaseEqualsASCII( |
173 GetVariationParam(quic_trial_params, "close_sessions_on_ip_change"), | 151 GetVariationParam(quic_trial_params, "close_sessions_on_ip_change"), |
174 "true"); | 152 "true"); |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 params->mark_quic_broken_when_network_blackholes = | 266 params->mark_quic_broken_when_network_blackholes = |
289 ShouldMarkQuicBrokenWhenNetworkBlackholes(quic_trial_params); | 267 ShouldMarkQuicBrokenWhenNetworkBlackholes(quic_trial_params); |
290 | 268 |
291 params->enable_server_push_cancellation = | 269 params->enable_server_push_cancellation = |
292 ShouldEnableServerPushCancelation(quic_trial_params); | 270 ShouldEnableServerPushCancelation(quic_trial_params); |
293 | 271 |
294 params->retry_without_alt_svc_on_quic_errors = | 272 params->retry_without_alt_svc_on_quic_errors = |
295 ShouldRetryWithoutAltSvcOnQuicErrors(quic_trial_params); | 273 ShouldRetryWithoutAltSvcOnQuicErrors(quic_trial_params); |
296 | 274 |
297 if (params->enable_quic) { | 275 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); | |
306 params->quic_enable_non_blocking_io = | 276 params->quic_enable_non_blocking_io = |
307 ShouldQuicEnableNonBlockingIO(quic_trial_params); | 277 ShouldQuicEnableNonBlockingIO(quic_trial_params); |
308 params->quic_disable_disk_cache = | |
309 ShouldQuicDisableDiskCache(quic_trial_params); | |
310 params->quic_force_hol_blocking = ShouldForceHolBlocking(quic_trial_params); | 278 params->quic_force_hol_blocking = ShouldForceHolBlocking(quic_trial_params); |
311 params->quic_connection_options = | 279 params->quic_connection_options = |
312 GetQuicConnectionOptions(quic_trial_params); | 280 GetQuicConnectionOptions(quic_trial_params); |
313 params->quic_close_sessions_on_ip_change = | 281 params->quic_close_sessions_on_ip_change = |
314 ShouldQuicCloseSessionsOnIpChange(quic_trial_params); | 282 ShouldQuicCloseSessionsOnIpChange(quic_trial_params); |
315 int idle_connection_timeout_seconds = | 283 int idle_connection_timeout_seconds = |
316 GetQuicIdleConnectionTimeoutSeconds(quic_trial_params); | 284 GetQuicIdleConnectionTimeoutSeconds(quic_trial_params); |
317 if (idle_connection_timeout_seconds != 0) { | 285 if (idle_connection_timeout_seconds != 0) { |
318 params->quic_idle_connection_timeout_seconds = | 286 params->quic_idle_connection_timeout_seconds = |
319 idle_connection_timeout_seconds; | 287 idle_connection_timeout_seconds; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 ConfigureTCPFastOpenParams(tfo_trial_group, params); | 379 ConfigureTCPFastOpenParams(tfo_trial_group, params); |
412 | 380 |
413 std::map<std::string, std::string> proxy_preconnects_trial_params; | 381 std::map<std::string, std::string> proxy_preconnects_trial_params; |
414 variations::GetVariationParams("NetProxyPreconnects", | 382 variations::GetVariationParams("NetProxyPreconnects", |
415 &proxy_preconnects_trial_params); | 383 &proxy_preconnects_trial_params); |
416 ConfigureOptimizePreconnectsToProxiesParams(proxy_preconnects_trial_params, | 384 ConfigureOptimizePreconnectsToProxiesParams(proxy_preconnects_trial_params, |
417 params); | 385 params); |
418 } | 386 } |
419 | 387 |
420 } // namespace network_session_configurator | 388 } // namespace network_session_configurator |
OLD | NEW |