Index: net/nqe/network_quality_estimator_params.cc |
diff --git a/net/nqe/network_quality_estimator_params.cc b/net/nqe/network_quality_estimator_params.cc |
index 1479e3e7bc0ed26c835a6e03a847dbc7ae4dae6a..ace6eae19f74990518ee2ff4276509f1ed779395 100644 |
--- a/net/nqe/network_quality_estimator_params.cc |
+++ b/net/nqe/network_quality_estimator_params.cc |
@@ -127,26 +127,79 @@ void ObtainDefaultObservations( |
const std::map<std::string, std::string>& variation_params, |
NetworkQuality default_observations[]) { |
for (size_t i = 0; i < NetworkChangeNotifier::CONNECTION_LAST; ++i) { |
- NetworkChangeNotifier::ConnectionType type = |
- static_cast<NetworkChangeNotifier::ConnectionType>(i); |
DCHECK_EQ(InvalidRTT(), default_observations[i].http_rtt()); |
DCHECK_EQ(InvalidRTT(), default_observations[i].transport_rtt()); |
DCHECK_EQ(kInvalidThroughput, |
default_observations[i].downstream_throughput_kbps()); |
+ } |
+ |
+ // Default observations for HTTP RTT, transport RTT, and downstream throughput |
+ // Kbps for the various connection types. These may be overridden by |
+ // variations params. The default observation for a connection type |
+ // corresponds to typical network quality for that connection type. |
+ default_observations[NetworkChangeNotifier::CONNECTION_UNKNOWN] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(115), |
+ base::TimeDelta::FromMilliseconds(55), 1961); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_ETHERNET] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(90), |
+ base::TimeDelta::FromMilliseconds(33), 1456); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_WIFI] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(116), |
+ base::TimeDelta::FromMilliseconds(66), 2658); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_2G] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(1726), |
+ base::TimeDelta::FromMilliseconds(1531), 74); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_3G] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(272), |
+ base::TimeDelta::FromMilliseconds(209), 749); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_4G] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(137), |
+ base::TimeDelta::FromMilliseconds(80), 1708); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_NONE] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(163), |
+ base::TimeDelta::FromMilliseconds(83), 575); |
+ |
+ default_observations[NetworkChangeNotifier::CONNECTION_BLUETOOTH] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(385), |
+ base::TimeDelta::FromMilliseconds(318), 476); |
+ |
+ // Override using the values provided via variation params. |
+ for (size_t i = 0; i <= NetworkChangeNotifier::CONNECTION_LAST; ++i) { |
+ NetworkChangeNotifier::ConnectionType type = |
+ static_cast<NetworkChangeNotifier::ConnectionType>(i); |
- base::TimeDelta default_rtt = InvalidRTT(); |
int32_t variations_value = kMinimumRTTVariationParameterMsec - 1; |
std::string parameter_name = std::string(GetNameForConnectionType(type)) |
.append(".DefaultMedianRTTMsec"); |
auto it = variation_params.find(parameter_name); |
+ if (it != variation_params.end() && |
+ base::StringToInt(it->second, &variations_value) && |
+ variations_value >= kMinimumRTTVariationParameterMsec) { |
+ default_observations[i] = |
+ NetworkQuality(base::TimeDelta::FromMilliseconds(variations_value), |
+ default_observations[i].transport_rtt(), |
+ default_observations[i].downstream_throughput_kbps()); |
+ } |
+ variations_value = kMinimumRTTVariationParameterMsec - 1; |
+ parameter_name = std::string(GetNameForConnectionType(type)) |
+ .append(".DefaultMedianTransportRTTMsec"); |
+ it = variation_params.find(parameter_name); |
if (it != variation_params.end() && |
base::StringToInt(it->second, &variations_value) && |
variations_value >= kMinimumRTTVariationParameterMsec) { |
- default_rtt = base::TimeDelta::FromMilliseconds(variations_value); |
+ default_observations[i] = |
+ NetworkQuality(default_observations[i].http_rtt(), |
+ base::TimeDelta::FromMilliseconds(variations_value), |
+ default_observations[i].downstream_throughput_kbps()); |
} |
- int32_t downstream_throughput_kbps = kInvalidThroughput; |
variations_value = kMinimumThroughputVariationParameterKbps - 1; |
parameter_name = std::string(GetNameForConnectionType(type)) |
.append(".DefaultMedianKbps"); |
@@ -155,12 +208,10 @@ void ObtainDefaultObservations( |
if (it != variation_params.end() && |
base::StringToInt(it->second, &variations_value) && |
variations_value >= kMinimumThroughputVariationParameterKbps) { |
- downstream_throughput_kbps = variations_value; |
+ default_observations[i] = NetworkQuality( |
+ default_observations[i].http_rtt(), |
+ default_observations[i].transport_rtt(), variations_value); |
} |
- |
- default_observations[i] = |
- NetworkQuality(default_rtt, default_observations[i].transport_rtt(), |
- downstream_throughput_kbps); |
} |
} |