Index: net/nqe/network_quality_estimator.h |
diff --git a/net/nqe/network_quality_estimator.h b/net/nqe/network_quality_estimator.h |
index afeca4eb01e1220879cb01bf87a644ebe06a9775..9be1e4414038e5fc3d1a6887d6b384a887010b45 100644 |
--- a/net/nqe/network_quality_estimator.h |
+++ b/net/nqe/network_quality_estimator.h |
@@ -45,21 +45,21 @@ class ThroughputAnalyzer; |
class URLRequest; |
// 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. |
// A NetworkQualityEstimator instance is attached to URLRequestContexts and |
// observes the traffic of URLRequests spawned from the URLRequestContexts. |
// A single instance of NQE can be attached to multiple URLRequestContexts, |
// thereby increasing the single NQE instance's accuracy by providing more |
// observed traffic characteristics. |
-class NET_EXPORT_PRIVATE NetworkQualityEstimator |
+class NET_EXPORT NetworkQualityEstimator |
: public NetworkChangeNotifier::ConnectionTypeObserver, |
public ExternalEstimateProvider::UpdatedEstimateDelegate { |
public: |
// EffectiveConnectionType is the connection type whose typical performance is |
// most similar to the measured performance of the network in use. In many |
// cases, the "effective" connection type and the actual type of connection in |
// use are the same, but often a network connection performs significantly |
// different, usually worse, from its expected capabilities. |
// EffectiveConnectionType of a network is independent of if the current |
// connection is metered or not. For example, an unmetered slow connection may |
@@ -70,21 +70,21 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator |
EFFECTIVE_CONNECTION_TYPE_OFFLINE, |
EFFECTIVE_CONNECTION_TYPE_SLOW_2G, |
EFFECTIVE_CONNECTION_TYPE_2G, |
EFFECTIVE_CONNECTION_TYPE_3G, |
EFFECTIVE_CONNECTION_TYPE_4G, |
EFFECTIVE_CONNECTION_TYPE_BROADBAND, |
EFFECTIVE_CONNECTION_TYPE_LAST, |
}; |
// Observes changes in effective connection type. |
- class NET_EXPORT_PRIVATE EffectiveConnectionTypeObserver { |
+ class NET_EXPORT EffectiveConnectionTypeObserver { |
public: |
// Notifies the observer of a change in the effective connection type. |
// NetworkQualityEstimator computes the effective connection type once in |
// every interval of duration |
// |effective_connection_type_recomputation_interval_|. Additionally, when |
// there is a change in the connection type of the device, then the |
// effective connection type is immediately recomputed. The observer must |
// register and unregister itself on the IO thread. All the observers would |
// be notified on the IO thread. |
// |
@@ -230,20 +230,25 @@ class NET_EXPORT_PRIVATE NetworkQualityEstimator |
// |use_localhost_requests| should only be true when testing against local |
// HTTP server and allows the requests to local host to be used for network |
// quality estimation. |
void SetUseLocalHostRequestsForTesting(bool use_localhost_requests); |
// |use_smaller_responses_for_tests| should only be true when testing. |
// Allows the responses smaller than |kMinTransferSizeInBits| to be used for |
// network quality estimation. |
void SetUseSmallResponsesForTesting(bool use_small_responses); |
+ // Reports |effective_connection_type| to all |
+ // EffectiveConnectionTypeObservers. |
+ void ReportEffectiveConnectionTypeForTesting( |
+ EffectiveConnectionType effective_connection_type); |
+ |
protected: |
// NetworkID is used to uniquely identify a network. |
// For the purpose of network quality estimation and caching, a network is |
// uniquely identified by a combination of |type| and |
// |id|. This approach is unable to distinguish networks with |
// same name (e.g., different Wi-Fi networks with same SSID). |
// This is a protected member to expose it to tests. |
struct NET_EXPORT_PRIVATE NetworkID { |
NetworkID(NetworkChangeNotifier::ConnectionType type, const std::string& id) |
: type(type), id(id) {} |