summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjackhou <jackhou@chromium.org>2015-06-24 20:46:10 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-25 03:46:44 +0000
commit2255e9f327385bcac8aa8766f9f94c8f7a691950 (patch)
tree35b1d01a8e2c1ed144e002369948d0d14cb5d3cf
parent341bcc51b0d95d37b5d82b8e05764670294ebad8 (diff)
downloadchromium_src-2255e9f327385bcac8aa8766f9f94c8f7a691950.zip
chromium_src-2255e9f327385bcac8aa8766f9f94c8f7a691950.tar.gz
chromium_src-2255e9f327385bcac8aa8766f9f94c8f7a691950.tar.bz2
Revert of Seed NetworkQualityEstimator with default estimates. (patchset #6 id:160001 of https://codereview.chromium.org/1174263007/)
Reason for revert: This is causing a perf regression because it increases the number of files containing a static initializer (network_quality_estimator.cc initializes a base::TimeDelta). Original issue's description: > Seed NetworkQualityEstimator with default estimates. > > When the browser starts, NetworkQualityEstimator has no > observation and thus, cannot compute estimated network > quality. This change populates the NetworkQualityEstimator > observation buffers with default estimates that depend on > current connection type. > > Default values are configured through field trial, which > makes it easier to update them with time (or even target > them based on country). > > BUG=472681 > > Committed: https://crrev.com/c05c8745a17a915f10ab4e4c02e2c6c5f2eac96a > Cr-Commit-Position: refs/heads/master@{#336074} TBR=bengr@chromium.org,pauljensen@chromium.org,mmenke@chromium.org,tbansal@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=472681 Review URL: https://codereview.chromium.org/1208763002 Cr-Commit-Position: refs/heads/master@{#336088}
-rw-r--r--chrome/browser/io_thread.cc11
-rw-r--r--chrome/browser/io_thread.h1
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc11
-rw-r--r--net/base/network_quality.cc7
-rw-r--r--net/base/network_quality.h8
-rw-r--r--net/base/network_quality_estimator.cc105
-rw-r--r--net/base/network_quality_estimator.h47
-rw-r--r--net/base/network_quality_estimator_unittest.cc97
-rw-r--r--net/url_request/url_request_unittest.cc3
9 files changed, 33 insertions, 257 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 15acb77..0dd9c0e 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -139,11 +139,6 @@ const char kSpdyFieldTrialSpdy31GroupNamePrefix[] = "Spdy31Enabled";
const char kSpdyFieldTrialSpdy4GroupNamePrefix[] = "Spdy4Enabled";
const char kSpdyFieldTrialParametrizedPrefix[] = "Parametrized";
-// Field trial for network quality estimator. Seeds RTT and downstream
-// throughput observations with values that correspond to the connection type
-// determined by the operating system.
-const char kNetworkQualityEstimatorFieldTrialName[] = "NetworkQualityEstimator";
-
#if defined(OS_MACOSX) && !defined(OS_IOS)
void ObserveKeychainEvents() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -646,11 +641,7 @@ void IOThread::Init() {
globals_->system_network_delegate = chrome_network_delegate.Pass();
globals_->host_resolver = CreateGlobalHostResolver(net_log_);
- std::map<std::string, std::string> network_quality_estimator_params;
- variations::GetVariationParams(kNetworkQualityEstimatorFieldTrialName,
- &network_quality_estimator_params);
- globals_->network_quality_estimator.reset(
- new net::NetworkQualityEstimator(network_quality_estimator_params));
+ globals_->network_quality_estimator.reset(new net::NetworkQualityEstimator());
// TODO(erikchen): Remove ScopedTracker below once http://crbug.com/466432
// is fixed.
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index 1066a9b..689b11d 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -5,7 +5,6 @@
#ifndef CHROME_BROWSER_IO_THREAD_H_
#define CHROME_BROWSER_IO_THREAD_H_
-#include <map>
#include <string>
#include <vector>
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
index 5233245..dbdc85c 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
@@ -4,7 +4,6 @@
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h"
-#include <map>
#include <vector>
#include "base/command_line.h"
@@ -1222,11 +1221,7 @@ TEST_F(DataReductionProxyConfigTest, LoFiStatusTransition) {
// Overrides net::NetworkQualityEstimator for testing.
class TestNetworkQualityEstimator : public net::NetworkQualityEstimator {
public:
- explicit TestNetworkQualityEstimator(
- const std::map<std::string, std::string>& variation_params)
- : NetworkQualityEstimator(variation_params),
- rtt_(base::TimeDelta()),
- kbps_(0) {}
+ TestNetworkQualityEstimator() : rtt_(base::TimeDelta()), kbps_(0) {}
~TestNetworkQualityEstimator() override {}
@@ -1283,9 +1278,7 @@ TEST_F(DataReductionProxyConfigTest, AutoLoFiParams) {
EXPECT_EQ(base::TimeDelta::FromSeconds(hysteresis_sec),
config.auto_lofi_hysteresis_);
- std::map<std::string, std::string> network_quality_estimator_params;
- TestNetworkQualityEstimator test_network_quality_estimator(
- network_quality_estimator_params);
+ TestNetworkQualityEstimator test_network_quality_estimator;
// RTT is higher than threshold. Network is slow.
test_network_quality_estimator.SetRtt(
diff --git a/net/base/network_quality.cc b/net/base/network_quality.cc
index a25c971..90f282d 100644
--- a/net/base/network_quality.cc
+++ b/net/base/network_quality.cc
@@ -8,12 +8,7 @@
namespace net {
-const base::TimeDelta NetworkQuality::kInvalidRTT = base::TimeDelta::Max();
-
-const int32_t NetworkQuality::kInvalidThroughput = 0;
-
-NetworkQuality::NetworkQuality()
- : NetworkQuality(kInvalidRTT, kInvalidThroughput) {
+NetworkQuality::NetworkQuality() : NetworkQuality(base::TimeDelta::Max(), 0) {
}
NetworkQuality::NetworkQuality(const base::TimeDelta& rtt,
diff --git a/net/base/network_quality.h b/net/base/network_quality.h
index b47e21c..315616f 100644
--- a/net/base/network_quality.h
+++ b/net/base/network_quality.h
@@ -16,14 +16,6 @@ namespace net {
// estimated by the NetworkQualityEstimator.
class NET_EXPORT_PRIVATE NetworkQuality {
public:
- // RTT is set to |kInvalidRTT| if a valid value is unavailable. Readers
- // should discard RTT if it is set to |kInvalidRTT|.
- static const base::TimeDelta kInvalidRTT;
- // Throughput is set to |kInvalidThroughput| if a valid value is unavailable.
- // Readers should discard throughput value if it is set to
- // |kInvalidThroughput|.
- static const int32_t kInvalidThroughput;
-
NetworkQuality();
// |rtt| is the estimate of the round trip time.
// |downstream_throughput_kbps| is the estimate of the downstream throughput.
diff --git a/net/base/network_quality_estimator.cc b/net/base/network_quality_estimator.cc
index 9f37be0..9131f8f 100644
--- a/net/base/network_quality_estimator.cc
+++ b/net/base/network_quality_estimator.cc
@@ -13,9 +13,9 @@
#include "base/logging.h"
#include "base/metrics/histogram.h"
-#include "base/strings/string_number_conversions.h"
#include "net/base/load_timing_info.h"
#include "net/base/net_util.h"
+#include "net/base/network_quality.h"
#include "net/url_request/url_request.h"
#include "url/gurl.h"
@@ -31,112 +31,29 @@ const size_t kMaximumObservationsBufferSize = 500;
// in the NetworkQualityEstimator constructor.
const int kHalfLifeSeconds = 60;
-// Name of the different connection types. Used for matching the connection
-// type to the variation parameters. Names must be in the same order as
-// NetworkChangeNotifier::ConnectionType enum.
-const char* const kConnectionTypeNames[] =
- {"Unknown", "Ethernet", "WiFi", "2G", "3G", "4G", "None", "Bluetooth"};
-
-// Suffix of the name of the variation parameter that contains the default RTT
-// observation (in milliseconds). Complete name of the variation parameter
-// would be |ConnectionType|.|kDefaultRTTMsecObservationSuffix| where
-// |ConnectionType| is from |kConnectionTypeNames|. For example, variation
-// parameter for Wi-Fi would be "WiFi.DefaultMedianRTTMsec".
-const char kDefaultRTTMsecObservationSuffix[] = ".DefaultMedianRTTMsec";
-
-// Suffix of the name of the variation parameter that contains the default
-// downstream throughput observation (in Kbps). Complete name of the variation
-// parameter would be |ConnectionType|.|kDefaultKbpsObservationSuffix| where
-// |ConnectionType| is from |kConnectionTypeNames|. For example, variation
-// parameter for Wi-Fi would be "WiFi.DefaultMedianKbps".
-const char kDefaultKbpsObservationSuffix[] = ".DefaultMedianKbps";
-
} // namespace
namespace net {
-NetworkQualityEstimator::NetworkQualityEstimator(
- const std::map<std::string, std::string>& variation_params)
- : NetworkQualityEstimator(variation_params, false, false) {
+NetworkQualityEstimator::NetworkQualityEstimator()
+ : NetworkQualityEstimator(false, false) {
}
NetworkQualityEstimator::NetworkQualityEstimator(
- const std::map<std::string, std::string>& variation_params,
bool allow_local_host_requests_for_tests,
bool allow_smaller_responses_for_tests)
: allow_localhost_requests_(allow_local_host_requests_for_tests),
allow_small_responses_(allow_smaller_responses_for_tests),
last_connection_change_(base::TimeTicks::Now()),
current_connection_type_(NetworkChangeNotifier::GetConnectionType()),
- fastest_rtt_since_last_connection_change_(NetworkQuality::kInvalidRTT),
- peak_kbps_since_last_connection_change_(
- NetworkQuality::kInvalidThroughput) {
+ fastest_rtt_since_last_connection_change_(base::TimeDelta::Max()),
+ peak_kbps_since_last_connection_change_(0) {
static_assert(kMinRequestDurationMicroseconds > 0,
"Minimum request duration must be > 0");
static_assert(kHalfLifeSeconds > 0, "Half life duration must be > 0");
- static_assert(arraysize(kConnectionTypeNames) ==
- NetworkChangeNotifier::CONNECTION_LAST + 1,
- "ConnectionType name count should match");
-
- ObtainOperatingParams(variation_params);
- AddDefaultEstimates();
NetworkChangeNotifier::AddConnectionTypeObserver(this);
}
-void NetworkQualityEstimator::ObtainOperatingParams(
- const std::map<std::string, std::string>& variation_params) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- for (size_t i = 0; i < arraysize(kConnectionTypeNames); ++i) {
- int32_t variations_value = kMinimumRTTVariationParameterMsec - 1;
- // Name of the parameter that holds the RTT value for this connection type.
- std::string rtt_parameter_name =
- std::string(kConnectionTypeNames[i])
- .append(kDefaultRTTMsecObservationSuffix);
- auto it = variation_params.find(rtt_parameter_name);
- if (it != variation_params.end() && !it->second.empty() &&
- base::StringToInt(it->second, &variations_value) &&
- variations_value >= kMinimumRTTVariationParameterMsec) {
- default_observations_[i] =
- NetworkQuality(base::TimeDelta::FromMilliseconds(variations_value),
- default_observations_[i].downstream_throughput_kbps());
- }
-
- variations_value = kMinimumThroughputVariationParameterKbps - 1;
- // Name of the parameter that holds the Kbps value for this connection
- // type.
- std::string kbps_parameter_name =
- std::string(kConnectionTypeNames[i])
- .append(kDefaultKbpsObservationSuffix);
- it = variation_params.find(kbps_parameter_name);
- if (it != variation_params.end() && !it->second.empty() &&
- base::StringToInt(it->second, &variations_value) &&
- variations_value >= kMinimumThroughputVariationParameterKbps) {
- default_observations_[i] =
- NetworkQuality(default_observations_[i].rtt(), variations_value);
- }
- }
-}
-
-void NetworkQualityEstimator::AddDefaultEstimates() {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- if (default_observations_[current_connection_type_].rtt() !=
- NetworkQuality::kInvalidRTT) {
- rtt_msec_observations_.AddObservation(Observation(
- default_observations_[current_connection_type_].rtt().InMilliseconds(),
- base::TimeTicks::Now()));
- }
-
- if (default_observations_[current_connection_type_]
- .downstream_throughput_kbps() != NetworkQuality::kInvalidThroughput) {
- kbps_observations_.AddObservation(
- Observation(default_observations_[current_connection_type_]
- .downstream_throughput_kbps(),
- base::TimeTicks::Now()));
- }
-}
-
NetworkQualityEstimator::~NetworkQualityEstimator() {
DCHECK(thread_checker_.CalledOnValidThread());
NetworkChangeNotifier::RemoveConnectionTypeObserver(this);
@@ -229,8 +146,7 @@ void NetworkQualityEstimator::NotifyDataReceived(
void NetworkQualityEstimator::OnConnectionTypeChanged(
NetworkChangeNotifier::ConnectionType type) {
DCHECK(thread_checker_.CalledOnValidThread());
- if (fastest_rtt_since_last_connection_change_ !=
- NetworkQuality::kInvalidRTT) {
+ if (fastest_rtt_since_last_connection_change_ != base::TimeDelta::Max()) {
switch (current_connection_type_) {
case NetworkChangeNotifier::CONNECTION_UNKNOWN:
UMA_HISTOGRAM_TIMES("NQE.FastestRTT.Unknown",
@@ -270,8 +186,7 @@ void NetworkQualityEstimator::OnConnectionTypeChanged(
}
}
- if (peak_kbps_since_last_connection_change_ !=
- NetworkQuality::kInvalidThroughput) {
+ if (peak_kbps_since_last_connection_change_) {
switch (current_connection_type_) {
case NetworkChangeNotifier::CONNECTION_UNKNOWN:
UMA_HISTOGRAM_COUNTS("NQE.PeakKbps.Unknown",
@@ -312,13 +227,11 @@ void NetworkQualityEstimator::OnConnectionTypeChanged(
}
last_connection_change_ = base::TimeTicks::Now();
- peak_kbps_since_last_connection_change_ = NetworkQuality::kInvalidThroughput;
- fastest_rtt_since_last_connection_change_ = NetworkQuality::kInvalidRTT;
+ peak_kbps_since_last_connection_change_ = 0;
+ fastest_rtt_since_last_connection_change_ = base::TimeDelta::Max();
kbps_observations_.Clear();
rtt_msec_observations_.Clear();
current_connection_type_ = type;
-
- AddDefaultEstimates();
}
NetworkQuality NetworkQualityEstimator::GetPeakEstimate() const {
diff --git a/net/base/network_quality_estimator.h b/net/base/network_quality_estimator.h
index b8605d8..025ce2c 100644
--- a/net/base/network_quality_estimator.h
+++ b/net/base/network_quality_estimator.h
@@ -8,7 +8,6 @@
#include <stdint.h>
#include <deque>
-#include <map>
#include "base/gtest_prod_util.h"
#include "base/macros.h"
@@ -16,10 +15,11 @@
#include "base/time/time.h"
#include "net/base/net_export.h"
#include "net/base/network_change_notifier.h"
-#include "net/base/network_quality.h"
namespace net {
+class NetworkQuality;
+
// NetworkQualityEstimator provides network quality estimates (quality of the
// full paths to all origins that have been connected to).
// The estimates are based on the observed organic traffic.
@@ -32,10 +32,7 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
: public NetworkChangeNotifier::ConnectionTypeObserver {
public:
// Creates a new NetworkQualityEstimator.
- // |variation_params| is the map containing all field trial parameters
- // related to NetworkQualityEstimator field trial.
- explicit NetworkQualityEstimator(
- const std::map<std::string, std::string>& variation_params);
+ NetworkQualityEstimator();
~NetworkQualityEstimator() override;
@@ -67,7 +64,6 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
TestPeakKbpsFastestRTTUpdates);
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation);
- FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ObtainOperatingParams);
FRIEND_TEST_ALL_PREFIXES(URLRequestTestHTTP, NetworkQualityEstimator);
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
PercentileSameTimestamps);
@@ -137,8 +133,6 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
private:
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations);
- FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
- ObtainOperatingParams);
// Computes the weighted observations and stores them in
// |weighted_observations| sorted by ascending |WeightedObservation.value|.
@@ -170,19 +164,10 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
// throughput is computed.
static const int kMinRequestDurationMicroseconds = 1000;
- // Minimum valid value of the variation parameter that holds RTT (in
- // milliseconds) values.
- static const int kMinimumRTTVariationParameterMsec = 1;
-
- // Minimum valid value of the variation parameter that holds throughput (in
- // kbps) values.
- static const int kMinimumThroughputVariationParameterKbps = 1;
-
// Construct a NetworkQualityEstimator instance allowing for test
- // configuration. Registers for network type change notifications so estimates
- // can be kept network specific.
- // |variation_params| is the map containing all field trial parameters for the
- // network quality estimator field trial.
+ // configuration.
+ // Registers for network type change notifications so estimates can be kept
+ // network specific.
// |allow_local_host_requests_for_tests| should only be true when testing
// against local HTTP server and allows the requests to local host to be
// used for network quality estimation.
@@ -190,18 +175,8 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
// against local HTTP server and allows the responses smaller than
// |kMinTransferSizeInBytes| or shorter than |kMinRequestDurationMicroseconds|
// to be used for network quality estimation.
- NetworkQualityEstimator(
- const std::map<std::string, std::string>& variation_params,
- bool allow_local_host_requests_for_tests,
- bool allow_smaller_responses_for_tests);
-
- // Obtains operating parameters from the field trial parameters.
- void ObtainOperatingParams(
- const std::map<std::string, std::string>& variation_params);
-
- // Adds the default median RTT and downstream throughput estimate for the
- // current connection type to the observation buffer.
- void AddDefaultEstimates();
+ NetworkQualityEstimator(bool allow_local_host_requests_for_tests,
+ bool allow_smaller_responses_for_tests);
// Returns the maximum size of the observation buffer.
// Used for testing.
@@ -255,12 +230,6 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
// Buffer that holds RTT (in milliseconds) observations sorted by timestamp.
ObservationBuffer rtt_msec_observations_;
- // Default network quality observations obtained from the network quality
- // estimator field trial parameters. The observations are indexed by
- // ConnectionType.
- NetworkQuality
- default_observations_[NetworkChangeNotifier::CONNECTION_LAST + 1];
-
base::ThreadChecker thread_checker_;
DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator);
diff --git a/net/base/network_quality_estimator_unittest.cc b/net/base/network_quality_estimator_unittest.cc
index ec61b44..c1955ec4 100644
--- a/net/base/network_quality_estimator_unittest.cc
+++ b/net/base/network_quality_estimator_unittest.cc
@@ -5,7 +5,6 @@
#include "net/base/network_quality_estimator.h"
#include <limits>
-#include <map>
#include "base/basictypes.h"
#include "base/logging.h"
@@ -31,13 +30,11 @@ TEST(NetworkQualityEstimatorTest, DISABLED_TestPeakKbpsFastestRTTUpdates) {
ASSERT_TRUE(embedded_test_server.InitializeAndWaitUntilReady());
// Enable requests to local host to be used for network quality estimation.
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params, true, true);
+ NetworkQualityEstimator estimator(true, true);
{
NetworkQuality network_quality = estimator.GetPeakEstimate();
- EXPECT_EQ(NetworkQuality::kInvalidRTT, network_quality.rtt());
- EXPECT_EQ(NetworkQuality::kInvalidThroughput,
- network_quality.downstream_throughput_kbps());
+ EXPECT_EQ(network_quality.rtt(), base::TimeDelta::Max());
+ EXPECT_EQ(network_quality.downstream_throughput_kbps(), 0);
}
TestDelegate test_delegate;
@@ -72,9 +69,8 @@ TEST(NetworkQualityEstimatorTest, DISABLED_TestPeakKbpsFastestRTTUpdates) {
NetworkQuality network_quality = estimator.GetPeakEstimate();
EXPECT_EQ(estimator.current_connection_type_,
NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI);
- EXPECT_EQ(NetworkQuality::kInvalidRTT, network_quality.rtt());
- EXPECT_EQ(NetworkQuality::kInvalidThroughput,
- network_quality.downstream_throughput_kbps());
+ EXPECT_EQ(network_quality.rtt(), base::TimeDelta::Max());
+ EXPECT_EQ(network_quality.downstream_throughput_kbps(), 0);
}
}
@@ -84,8 +80,7 @@ TEST(NetworkQualityEstimatorTest, StoreObservations) {
base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest")));
ASSERT_TRUE(embedded_test_server.InitializeAndWaitUntilReady());
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params, true, true);
+ NetworkQualityEstimator estimator(true, true);
TestDelegate test_delegate;
TestURLRequestContext context(false);
@@ -131,8 +126,7 @@ TEST(NetworkQualityEstimatorTest, StoreObservations) {
// the same timestamp. Kbps percentiles must be in decreasing order. RTT
// percentiles must be in increasing order.
TEST(NetworkQualityEstimatorTest, PercentileSameTimestamps) {
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params);
+ NetworkQualityEstimator estimator;
base::TimeTicks now = base::TimeTicks::Now();
// Network quality should be unavailable when no observations are available.
@@ -180,8 +174,7 @@ TEST(NetworkQualityEstimatorTest, PercentileSameTimestamps) {
// much more heavily than older samples. Kbps percentiles must be in decreasing
// order. RTT percentiles must be in increasing order.
TEST(NetworkQualityEstimatorTest, PercentileDifferentTimestamps) {
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params);
+ NetworkQualityEstimator estimator;
base::TimeTicks now = base::TimeTicks::Now();
base::TimeTicks very_old = base::TimeTicks::UnixEpoch();
@@ -225,12 +218,10 @@ TEST(NetworkQualityEstimatorTest, ComputedPercentiles) {
base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest")));
ASSERT_TRUE(embedded_test_server.InitializeAndWaitUntilReady());
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params, true, true);
+ NetworkQualityEstimator estimator(true, true);
NetworkQuality network_quality = estimator.GetPeakEstimate();
- EXPECT_EQ(NetworkQuality::kInvalidRTT, network_quality.rtt());
- EXPECT_EQ(NetworkQuality::kInvalidThroughput,
- network_quality.downstream_throughput_kbps());
+ EXPECT_EQ(network_quality.rtt(), base::TimeDelta::Max());
+ EXPECT_EQ(network_quality.downstream_throughput_kbps(), 0);
TestDelegate test_delegate;
TestURLRequestContext context(false);
@@ -269,70 +260,4 @@ TEST(NetworkQualityEstimatorTest, ComputedPercentiles) {
}
}
-// http://crbug.com/504058
-#if !defined(OS_WIN)
-TEST(NetworkQualityEstimatorTest, ObtainOperatingParams) {
- std::map<std::string, std::string> variation_params;
- variation_params["Unknown.DefaultMedianKbps"] = "100";
- variation_params["WiFi.DefaultMedianKbps"] = "200";
- variation_params["2G.DefaultMedianKbps"] = "300";
-
- variation_params["Unknown.DefaultMedianRTTMsec"] = "1000";
- variation_params["WiFi.DefaultMedianRTTMsec"] = "2000";
- // Negative variation value should not be used.
- variation_params["2G.DefaultMedianRTTMsec"] = "-5";
-
- NetworkQualityEstimator estimator(variation_params, true, true);
- EXPECT_EQ(1U, estimator.kbps_observations_.Size());
- EXPECT_EQ(1U, estimator.rtt_msec_observations_.Size());
- NetworkQuality network_quality;
- EXPECT_TRUE(estimator.GetEstimate(&network_quality));
- EXPECT_EQ(100, network_quality.downstream_throughput_kbps());
- EXPECT_EQ(base::TimeDelta::FromMilliseconds(1000), network_quality.rtt());
- auto it = estimator.kbps_observations_.observations_.begin();
- EXPECT_EQ(100, (*it).value);
- it = estimator.rtt_msec_observations_.observations_.begin();
- EXPECT_EQ(1000, (*it).value);
-
- // Simulate network change to Wi-Fi.
- estimator.OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType::CONNECTION_WIFI);
- EXPECT_EQ(1U, estimator.kbps_observations_.Size());
- EXPECT_EQ(1U, estimator.rtt_msec_observations_.Size());
- EXPECT_TRUE(estimator.GetEstimate(&network_quality));
- EXPECT_EQ(200, network_quality.downstream_throughput_kbps());
- EXPECT_EQ(base::TimeDelta::FromMilliseconds(2000), network_quality.rtt());
- it = estimator.kbps_observations_.observations_.begin();
- EXPECT_EQ(200, (*it).value);
- it = estimator.rtt_msec_observations_.observations_.begin();
- EXPECT_EQ(2000, (*it).value);
-
- // Peak network quality should not be affected by the network quality
- // estimator field trial.
- EXPECT_EQ(NetworkQuality::kInvalidRTT,
- estimator.fastest_rtt_since_last_connection_change_);
- EXPECT_EQ(NetworkQuality::kInvalidThroughput,
- estimator.peak_kbps_since_last_connection_change_);
-
- // Simulate network change to 2G. Only the Kbps default estimate should be
- // available.
- estimator.OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType::CONNECTION_2G);
- EXPECT_EQ(1U, estimator.kbps_observations_.Size());
- EXPECT_EQ(0U, estimator.rtt_msec_observations_.Size());
- // For GetEstimate() to return true, at least one observation must be
- // available for both RTT and downstream throughput.
- EXPECT_FALSE(estimator.GetEstimate(&network_quality));
- it = estimator.kbps_observations_.observations_.begin();
- EXPECT_EQ(300, (*it).value);
-
- // Simulate network change to 3G. Default estimates should be unavailable.
- estimator.OnConnectionTypeChanged(
- NetworkChangeNotifier::ConnectionType::CONNECTION_3G);
- EXPECT_FALSE(estimator.GetEstimate(&network_quality));
- EXPECT_EQ(0U, estimator.kbps_observations_.Size());
- EXPECT_EQ(0U, estimator.rtt_msec_observations_.Size());
-}
-#endif // !defined(OS_WIN)
-
} // namespace net
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 1f57487..11e19d9 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -4077,8 +4077,7 @@ TEST_F(URLRequestTestHTTP, GetZippedTest) {
TEST_F(URLRequestTestHTTP, NetworkQualityEstimator) {
ASSERT_TRUE(test_server_.Start());
// Enable requests to local host to be used for network quality estimation.
- std::map<std::string, std::string> variation_params;
- NetworkQualityEstimator estimator(variation_params, true, true);
+ NetworkQualityEstimator estimator(true, true);
TestDelegate d;
TestNetworkDelegate network_delegate; // Must outlive URLRequest.