Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
index dd55a9eb7e9a27c6fe4fc74aa741794e21992394..d4d41d702670011ecfb8a898cb016802b4a73a8d 100644 |
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc |
@@ -197,7 +197,7 @@ DataReductionProxyConfig::DataReductionProxyConfig( |
configurator_(configurator), |
event_creator_(event_creator), |
auto_lofi_minimum_rtt_(base::TimeDelta::Max()), |
- auto_lofi_maximum_kbps_(UINT64_MAX), |
+ auto_lofi_maximum_kbps_(0), |
auto_lofi_hysteresis_(base::TimeDelta::Max()), |
network_quality_last_updated_(base::TimeTicks()), |
network_prohibitively_slow_(false), |
@@ -397,17 +397,17 @@ bool DataReductionProxyConfig::IsNetworkQualityProhibitivelySlow( |
network_quality_last_updated_ = base::TimeTicks::Now(); |
+ // TODO(tbansal): Set |network_prohibitively_slow| based on medians. |
net::NetworkQuality network_quality = |
- network_quality_estimator->GetEstimate(); |
- // TODO(tbansal): Set |network_prohibitively_slow| based on medians |
- // provided by NetworkQualityEstimator API and field trial parameters. |
+ network_quality_estimator->GetPeakEstimate(); |
// Network is prohibitvely slow if either the downlink bandwidth is too low |
// or the RTT is too high. |
- if ((network_quality.peak_throughput_kbps > 0 && |
- network_quality.peak_throughput_kbps <= auto_lofi_maximum_kbps_) || |
- (network_quality.fastest_rtt > base::TimeDelta() && |
- network_quality.fastest_rtt >= auto_lofi_minimum_rtt_)) { |
+ if ((network_quality.downstream_throughput_kbps() > 0 && |
+ network_quality.downstream_throughput_kbps() < |
+ auto_lofi_maximum_kbps_) || |
+ (network_quality.rtt() != base::TimeDelta::Max() && |
+ network_quality.rtt() > auto_lofi_minimum_rtt_)) { |
network_prohibitively_slow_ = true; |
} else { |
network_prohibitively_slow_ = false; |
@@ -472,14 +472,16 @@ void DataReductionProxyConfig::PopulateAutoLoFiParams() { |
auto_lofi_minimum_rtt_ = |
base::TimeDelta::FromMilliseconds(auto_lofi_minimum_rtt_msec); |
} |
+ DCHECK_GE(auto_lofi_minimum_rtt_, base::TimeDelta()); |
- uint64_t auto_lofi_maximum_kbps; |
+ int32_t auto_lofi_maximum_kbps; |
variation_value = variations::GetVariationParamValue( |
DataReductionProxyParams::GetLoFiFieldTrialName(), "kbps"); |
if (!variation_value.empty() && |
- base::StringToUint64(variation_value, &auto_lofi_maximum_kbps)) { |
+ base::StringToInt(variation_value, &auto_lofi_maximum_kbps)) { |
auto_lofi_maximum_kbps_ = auto_lofi_maximum_kbps; |
} |
+ DCHECK_GE(auto_lofi_maximum_kbps_, 0); |
uint32_t auto_lofi_hysteresis_period_seconds; |
variation_value = variations::GetVariationParamValue( |
@@ -491,6 +493,7 @@ void DataReductionProxyConfig::PopulateAutoLoFiParams() { |
auto_lofi_hysteresis_ = |
base::TimeDelta::FromSeconds(auto_lofi_hysteresis_period_seconds); |
} |
+ DCHECK_GE(auto_lofi_hysteresis_, base::TimeDelta()); |
} |
bool DataReductionProxyConfig::IsProxyBypassed( |