OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ | 5 #ifndef NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ |
6 #define NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ | 6 #define NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 // Adds |throughput_observer| to the list of throughput observers. Must be | 249 // Adds |throughput_observer| to the list of throughput observers. Must be |
250 // called on the IO thread. | 250 // called on the IO thread. |
251 void AddThroughputObserver(ThroughputObserver* throughput_observer); | 251 void AddThroughputObserver(ThroughputObserver* throughput_observer); |
252 | 252 |
253 // Removes |throughput_observer| from the list of throughput observers if it | 253 // Removes |throughput_observer| from the list of throughput observers if it |
254 // is on the list of observers. Must be called on the IO thread. | 254 // is on the list of observers. Must be called on the IO thread. |
255 void RemoveThroughputObserver(ThroughputObserver* throughput_observer); | 255 void RemoveThroughputObserver(ThroughputObserver* throughput_observer); |
256 | 256 |
257 SocketPerformanceWatcherFactory* GetSocketPerformanceWatcherFactory(); | 257 SocketPerformanceWatcherFactory* GetSocketPerformanceWatcherFactory(); |
258 | 258 |
| 259 // |use_local_host_requests_for_tests| should only be true when testing |
| 260 // against local HTTP server and allows the requests to local host to be |
| 261 // used for network quality estimation. |
| 262 void SetUseLocalHostRequestsForTesting( |
| 263 bool use_local_host_requests_for_tests); |
| 264 |
| 265 // |use_smaller_responses_for_tests| should only be true when testing. |
| 266 // Allows the responses smaller than |kMinTransferSizeInBits| to be used for |
| 267 // network quality estimation. |
| 268 void SetUseSmallResponsesForTesting(bool use_small_responses); |
| 269 |
259 protected: | 270 protected: |
260 // NetworkID is used to uniquely identify a network. | 271 // NetworkID is used to uniquely identify a network. |
261 // For the purpose of network quality estimation and caching, a network is | 272 // For the purpose of network quality estimation and caching, a network is |
262 // uniquely identified by a combination of |type| and | 273 // uniquely identified by a combination of |type| and |
263 // |id|. This approach is unable to distinguish networks with | 274 // |id|. This approach is unable to distinguish networks with |
264 // same name (e.g., different Wi-Fi networks with same SSID). | 275 // same name (e.g., different Wi-Fi networks with same SSID). |
265 // This is a protected member to expose it to tests. | 276 // This is a protected member to expose it to tests. |
266 struct NET_EXPORT_PRIVATE NetworkID { | 277 struct NET_EXPORT_PRIVATE NetworkID { |
267 NetworkID(NetworkChangeNotifier::ConnectionType type, const std::string& id) | 278 NetworkID(NetworkChangeNotifier::ConnectionType type, const std::string& id) |
268 : type(type), id(id) {} | 279 : type(type), id(id) {} |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 EXTERNAL_ESTIMATE_PROVIDER_STATUS_DOWNLINK_BANDWIDTH_AVAILABLE, | 494 EXTERNAL_ESTIMATE_PROVIDER_STATUS_DOWNLINK_BANDWIDTH_AVAILABLE, |
484 EXTERNAL_ESTIMATE_PROVIDER_STATUS_BOUNDARY | 495 EXTERNAL_ESTIMATE_PROVIDER_STATUS_BOUNDARY |
485 }; | 496 }; |
486 | 497 |
487 // Records the metrics related to external estimate provider. | 498 // Records the metrics related to external estimate provider. |
488 void RecordExternalEstimateProviderMetrics( | 499 void RecordExternalEstimateProviderMetrics( |
489 NQEExternalEstimateProviderStatus status) const; | 500 NQEExternalEstimateProviderStatus status) const; |
490 | 501 |
491 // Determines if the requests to local host can be used in estimating the | 502 // Determines if the requests to local host can be used in estimating the |
492 // network quality. Set to true only for tests. | 503 // network quality. Set to true only for tests. |
493 const bool use_localhost_requests_; | 504 bool use_localhost_requests_; |
494 | 505 |
495 // Determines if the responses smaller than |kMinTransferSizeInBytes| | 506 // Determines if the responses smaller than |kMinTransferSizeInBytes| |
496 // or shorter than |kMinTransferSizeInBytes| can be used in estimating the | 507 // or shorter than |kMinTransferSizeInBytes| can be used in estimating the |
497 // network quality. Set to true only for tests. | 508 // network quality. Set to true only for tests. |
498 const bool use_small_responses_; | 509 bool use_small_responses_; |
499 | 510 |
500 // The factor by which the weight of an observation reduces every second. | 511 // The factor by which the weight of an observation reduces every second. |
501 const double weight_multiplier_per_second_; | 512 const double weight_multiplier_per_second_; |
502 | 513 |
503 // Algorithm to use for computing effective connection type. The value is | 514 // Algorithm to use for computing effective connection type. The value is |
504 // obtained from field trial parameters. If the value from field trial | 515 // obtained from field trial parameters. If the value from field trial |
505 // parameters is unavailable, it is set to | 516 // parameters is unavailable, it is set to |
506 // kDefaultEffectiveConnectionTypeAlgorithm. | 517 // kDefaultEffectiveConnectionTypeAlgorithm. |
507 const EffectiveConnectionTypeAlgorithm effective_connection_type_algorithm_; | 518 const EffectiveConnectionTypeAlgorithm effective_connection_type_algorithm_; |
508 | 519 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 base::ThreadChecker thread_checker_; | 604 base::ThreadChecker thread_checker_; |
594 | 605 |
595 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_; | 606 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_; |
596 | 607 |
597 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator); | 608 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator); |
598 }; | 609 }; |
599 | 610 |
600 } // namespace net | 611 } // namespace net |
601 | 612 |
602 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ | 613 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ |
OLD | NEW |