Enable reading of cached network quality from WiFi networks
Bug: 490870 Change-Id: I05d1878ce164f1907b304c9e222c36d26365d402 Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester Reviewed-on: https://chromium-review.googlesource.com/567665 Commit-Queue: Tarun Bansal <tbansal@chromium.org> Reviewed-by: Ryan Sturm <ryansturm@chromium.org> Cr-Commit-Position: refs/heads/master@{#489748}
This commit is contained in:
@@ -1483,6 +1483,12 @@ bool NetworkQualityEstimator::ReadCachedNetworkQualityEstimate() {
|
|||||||
if (!params_->persistent_cache_reading_enabled())
|
if (!params_->persistent_cache_reading_enabled())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (current_network_id_.type !=
|
||||||
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI &&
|
||||||
|
!disable_offline_check_) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
nqe::internal::CachedNetworkQuality cached_network_quality;
|
nqe::internal::CachedNetworkQuality cached_network_quality;
|
||||||
|
|
||||||
const bool cached_estimate_available = network_quality_store_->GetById(
|
const bool cached_estimate_available = network_quality_store_->GetById(
|
||||||
@@ -1820,6 +1826,11 @@ void NetworkQualityEstimator::MaybeUpdateNetworkQualityFromCache(
|
|||||||
return;
|
return;
|
||||||
if (network_id != current_network_id_)
|
if (network_id != current_network_id_)
|
||||||
return;
|
return;
|
||||||
|
if (network_id.type !=
|
||||||
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI &&
|
||||||
|
!disable_offline_check_) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Since the cached network quality is for the current network, add it to
|
// Since the cached network quality is for the current network, add it to
|
||||||
// the current observations.
|
// the current observations.
|
||||||
|
@@ -86,7 +86,7 @@ double GetWeightMultiplierPerSecond(
|
|||||||
bool GetPersistentCacheReadingEnabled(
|
bool GetPersistentCacheReadingEnabled(
|
||||||
const std::map<std::string, std::string>& params) {
|
const std::map<std::string, std::string>& params) {
|
||||||
if (GetStringValueForVariationParamWithDefaultValue(
|
if (GetStringValueForVariationParamWithDefaultValue(
|
||||||
params, "persistent_cache_reading_enabled", "false") != "true") {
|
params, "persistent_cache_reading_enabled", "true") != "true") {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@@ -195,13 +195,11 @@ TEST(NetworkQualityEstimatorTest, TestKbpsRTTUpdates) {
|
|||||||
base::HistogramTester histogram_tester;
|
base::HistogramTester histogram_tester;
|
||||||
// Enable requests to local host to be used for network quality estimation.
|
// Enable requests to local host to be used for network quality estimation.
|
||||||
std::map<std::string, std::string> variation_params;
|
std::map<std::string, std::string> variation_params;
|
||||||
variation_params["persistent_cache_reading_enabled"] = "true";
|
|
||||||
TestNetworkQualityEstimator estimator(variation_params);
|
TestNetworkQualityEstimator estimator(variation_params);
|
||||||
|
|
||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
|
||||||
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
histogram_tester.ExpectTotalCount("NQE.CachedNetworkQualityAvailable", 0);
|
||||||
false, 1);
|
|
||||||
|
|
||||||
base::TimeDelta rtt;
|
base::TimeDelta rtt;
|
||||||
int32_t kbps;
|
int32_t kbps;
|
||||||
@@ -290,7 +288,7 @@ TEST(NetworkQualityEstimatorTest, TestKbpsRTTUpdates) {
|
|||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
|
||||||
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
||||||
false, 2);
|
false, 1);
|
||||||
histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1);
|
histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1);
|
||||||
histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1);
|
histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1);
|
||||||
|
|
||||||
@@ -325,7 +323,7 @@ TEST(NetworkQualityEstimatorTest, TestKbpsRTTUpdates) {
|
|||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, std::string());
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, std::string());
|
||||||
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
||||||
false, 2);
|
false, 1);
|
||||||
histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1);
|
histogram_tester.ExpectTotalCount("NQE.PeakKbps.Unknown", 1);
|
||||||
histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1);
|
histogram_tester.ExpectTotalCount("NQE.FastestRTT.Unknown", 1);
|
||||||
|
|
||||||
@@ -357,8 +355,6 @@ TEST(NetworkQualityEstimatorTest, TestKbpsRTTUpdates) {
|
|||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_UNKNOWN, "test");
|
||||||
histogram_tester.ExpectBucketCount("NQE.CachedNetworkQualityAvailable", false,
|
histogram_tester.ExpectBucketCount("NQE.CachedNetworkQualityAvailable", false,
|
||||||
2);
|
|
||||||
histogram_tester.ExpectBucketCount("NQE.CachedNetworkQualityAvailable", true,
|
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,11 +363,10 @@ TEST(NetworkQualityEstimatorTest, TestKbpsRTTUpdates) {
|
|||||||
TEST(NetworkQualityEstimatorTest, Caching) {
|
TEST(NetworkQualityEstimatorTest, Caching) {
|
||||||
base::HistogramTester histogram_tester;
|
base::HistogramTester histogram_tester;
|
||||||
std::map<std::string, std::string> variation_params;
|
std::map<std::string, std::string> variation_params;
|
||||||
variation_params["persistent_cache_reading_enabled"] = "true";
|
|
||||||
TestNetworkQualityEstimator estimator(variation_params);
|
TestNetworkQualityEstimator estimator(variation_params);
|
||||||
|
|
||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test");
|
||||||
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
histogram_tester.ExpectUniqueSample("NQE.CachedNetworkQualityAvailable",
|
||||||
false, 1);
|
false, 1);
|
||||||
|
|
||||||
@@ -431,7 +426,7 @@ TEST(NetworkQualityEstimatorTest, Caching) {
|
|||||||
EXPECT_LE(2, num_net_log_entries);
|
EXPECT_LE(2, num_net_log_entries);
|
||||||
|
|
||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test");
|
||||||
histogram_tester.ExpectBucketCount(
|
histogram_tester.ExpectBucketCount(
|
||||||
"NQE.RTT.ObservationSource",
|
"NQE.RTT.ObservationSource",
|
||||||
NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE, 1);
|
NETWORK_QUALITY_OBSERVATION_SOURCE_HTTP_CACHED_ESTIMATE, 1);
|
||||||
@@ -478,10 +473,11 @@ TEST(NetworkQualityEstimatorTest, CachingDisabled) {
|
|||||||
base::HistogramTester histogram_tester;
|
base::HistogramTester histogram_tester;
|
||||||
std::map<std::string, std::string> variation_params;
|
std::map<std::string, std::string> variation_params;
|
||||||
// Do not set |persistent_cache_reading_enabled| variation param.
|
// Do not set |persistent_cache_reading_enabled| variation param.
|
||||||
|
variation_params["persistent_cache_reading_enabled"] = "false";
|
||||||
TestNetworkQualityEstimator estimator(variation_params);
|
TestNetworkQualityEstimator estimator(variation_params);
|
||||||
|
|
||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test");
|
||||||
histogram_tester.ExpectTotalCount("NQE.CachedNetworkQualityAvailable", 0);
|
histogram_tester.ExpectTotalCount("NQE.CachedNetworkQualityAvailable", 0);
|
||||||
|
|
||||||
base::TimeDelta rtt;
|
base::TimeDelta rtt;
|
||||||
@@ -2233,6 +2229,12 @@ TEST(NetworkQualityEstimatorTest, MAYBE_TestTCPSocketRTT) {
|
|||||||
|
|
||||||
estimator.SimulateNetworkChange(
|
estimator.SimulateNetworkChange(
|
||||||
NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test");
|
NetworkChangeNotifier::ConnectionType::CONNECTION_2G, "test");
|
||||||
|
histogram_tester.ExpectBucketCount(
|
||||||
|
"NQE.RTT.ObservationSource",
|
||||||
|
NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE, 0);
|
||||||
|
|
||||||
|
estimator.SimulateNetworkChange(
|
||||||
|
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI, "test-1");
|
||||||
histogram_tester.ExpectBucketCount(
|
histogram_tester.ExpectBucketCount(
|
||||||
"NQE.RTT.ObservationSource",
|
"NQE.RTT.ObservationSource",
|
||||||
NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE, 1);
|
NETWORK_QUALITY_OBSERVATION_SOURCE_TRANSPORT_CACHED_ESTIMATE, 1);
|
||||||
@@ -3006,7 +3008,7 @@ TEST(NetworkQualityEstimatorTest, OnPrefsReadWithReadingDisabled) {
|
|||||||
std::map<std::string, std::string> variation_params;
|
std::map<std::string, std::string> variation_params;
|
||||||
variation_params["effective_connection_type_algorithm"] =
|
variation_params["effective_connection_type_algorithm"] =
|
||||||
"TransportRTTOrDownstreamThroughput";
|
"TransportRTTOrDownstreamThroughput";
|
||||||
// |persistent_cache_reading_enabled| variation param is not set.
|
variation_params["persistent_cache_reading_enabled"] = "false";
|
||||||
|
|
||||||
// Disable default platform values so that the effect of cached estimates
|
// Disable default platform values so that the effect of cached estimates
|
||||||
// at the time of startup can be studied in isolation.
|
// at the time of startup can be studied in isolation.
|
||||||
|
Reference in New Issue
Block a user