| Index: net/base/network_quality_estimator.h
|
| diff --git a/net/base/network_quality_estimator.h b/net/base/network_quality_estimator.h
|
| index aba0313b6ec924c68376ced83ecd7eeb5391c207..f951bd4f7fa533b72dd88a7ec01243c31cf6d38f 100644
|
| --- a/net/base/network_quality_estimator.h
|
| +++ b/net/base/network_quality_estimator.h
|
| @@ -149,6 +149,9 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
|
| void OnConnectionTypeChanged(
|
| NetworkChangeNotifier::ConnectionType type) override;
|
|
|
| + // ExternalEstimateProvider::UpdatedEstimateObserver implementation.
|
| + void OnUpdatedEstimateAvailable() override;
|
| +
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations);
|
| FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestKbpsRTTUpdates);
|
| @@ -165,6 +168,10 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
|
| FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
|
| TestLRUCacheMaximumSize);
|
| FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestGetMedianRTTSince);
|
| + FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
|
| + TestExternalEstimateProvider);
|
| + FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
|
| + TestExternalEstimateProviderMergeEstimates);
|
|
|
| // NetworkQuality is used to cache the quality of a network connection.
|
| class NET_EXPORT_PRIVATE NetworkQuality {
|
| @@ -352,12 +359,18 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
|
| // Maximum number of observations that can be held in the ObservationBuffer.
|
| static const size_t kMaximumObservationsBufferSize = 300;
|
|
|
| + // Time duration (in milliseconds) after which the estimate provided by
|
| + // external estimate provider is considered stale.
|
| + static const int kExternalEstimateProviderFreshnessDurationMsec =
|
| + 5 * 60 * 1000;
|
| +
|
| // Returns the RTT value to be used when the valid RTT is unavailable. Readers
|
| // should discard RTT if it is set to the value returned by |InvalidRTT()|.
|
| static const base::TimeDelta InvalidRTT();
|
|
|
| - // ExternalEstimateProvider::UpdatedEstimateObserver implementation:
|
| - void OnUpdatedEstimateAvailable() override;
|
| + // Queries the external estimate provider for the latest network quality
|
| + // estimates, and adds those estimates to the current observation buffer.
|
| + void QueryExternalEstimateProvider();
|
|
|
| // Obtains operating parameters from the field trial parameters.
|
| void ObtainOperatingParams(
|
| @@ -396,6 +409,22 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
|
| // observations.
|
| bool RequestProvidesUsefulObservations(const URLRequest& request) const;
|
|
|
| + // Values of external estimate provider status. This enum must remain
|
| + // synchronized with the enum of the same name in
|
| + // metrics/histograms/histograms.xml.
|
| + enum NQEExternalEstimateProviderStatus {
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_NOT_AVAILABLE,
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_AVAILABLE,
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERIED,
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_QUERY_SUCCESSFUL,
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_CALLBACK,
|
| + EXTERNAL_ESTIMATE_PROVIDER_STATUS_BOUNDARY
|
| + };
|
| +
|
| + // Records the metrics related to external estimate provider.
|
| + void RecordExternalEstimateProviderMetrics(
|
| + NQEExternalEstimateProviderStatus status) const;
|
| +
|
| // Determines if the requests to local host can be used in estimating the
|
| // network quality. Set to true only for tests.
|
| const bool allow_localhost_requests_;
|
| @@ -439,7 +468,7 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator
|
|
|
| // ExternalEstimateProvider that provides network quality using operating
|
| // system APIs. May be NULL.
|
| - const scoped_ptr<ExternalEstimateProvider> external_estimates_provider_;
|
| + const scoped_ptr<ExternalEstimateProvider> external_estimate_provider_;
|
|
|
| base::ThreadChecker thread_checker_;
|
|
|
|
|