Index: net/nqe/network_quality_estimator.h |
diff --git a/net/nqe/network_quality_estimator.h b/net/nqe/network_quality_estimator.h |
index b7fc886b5ab558f41fe1ed6a1e364c9bfb0e5fb6..4914414350881dbd1595d849b2152936af331dc5 100644 |
--- a/net/nqe/network_quality_estimator.h |
+++ b/net/nqe/network_quality_estimator.h |
@@ -338,6 +338,9 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator |
// Overrides the tick clock used by |this| for testing. |
void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock); |
+ // Returns a random double in the range [0.0, 1.0). Virtualized for testing. |
+ virtual double RandDouble() const; |
+ |
private: |
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations); |
FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation); |
@@ -503,6 +506,11 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator |
void RecordExternalEstimateProviderMetrics( |
NQEExternalEstimateProviderStatus status) const; |
+ // Records a correlation metric that can be used for computing the correlation |
+ // between HTTP-layer RTT, transport-layer RTT, throughput and the time |
+ // taken to complete |request|. |
+ void RecordCorrelationMetric(const URLRequest& request) const; |
+ |
// Determines if the requests to local host can be used in estimating the |
// network quality. Set to true only for tests. |
bool use_localhost_requests_; |
@@ -606,6 +614,13 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator |
// |effective_connection_type_recomputation_interval_| ago). |
EffectiveConnectionType effective_connection_type_; |
+ // It is costlier to add values to a sparse histogram. So, the correlation UMA |
+ // is recorded with |correlation_uma_logging_probability_| since recording it |
+ // in a sparse histogram for each request is unnecessary and cost-prohibitive. |
+ // e.g., if it is 0.0, then the UMA will never be recorded. On the other hand, |
+ // if it is 1.0, then it will be recorded for all valid HTTP requests. |
+ const double correlation_uma_logging_probability_; |
+ |
base::ThreadChecker thread_checker_; |
base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_; |