Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Side by Side Diff: net/nqe/network_quality_estimator.h

Issue 2858743002: NQE: Move params from the estimator class to the params class (Closed)
Patch Set: ps Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 448
449 private: 449 private:
450 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 450 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
451 AdaptiveRecomputationEffectiveConnectionType); 451 AdaptiveRecomputationEffectiveConnectionType);
452 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations); 452 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations);
453 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation); 453 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation);
454 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 454 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
455 DefaultObservationsOverridden); 455 DefaultObservationsOverridden);
456 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 456 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
457 ObtainAlgorithmToUseFromParams); 457 ObtainAlgorithmToUseFromParams);
458 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, HalfLifeParam);
459 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ComputedPercentiles); 458 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ComputedPercentiles);
460 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestGetMetricsSince); 459 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestGetMetricsSince);
461 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 460 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
462 TestExternalEstimateProviderMergeEstimates); 461 TestExternalEstimateProviderMergeEstimates);
463 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 462 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
464 UnknownEffectiveConnectionType); 463 UnknownEffectiveConnectionType);
465 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 464 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
466 TypicalNetworkQualities); 465 TypicalNetworkQualities);
467 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 466 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
468 OnPrefsReadWithReadingDisabled); 467 OnPrefsReadWithReadingDisabled);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 // network quality. Set to true only for tests. 661 // network quality. Set to true only for tests.
663 bool use_small_responses_; 662 bool use_small_responses_;
664 663
665 // When set to true, the device offline check is disabled when computing the 664 // When set to true, the device offline check is disabled when computing the
666 // effective connection type or when writing the prefs. 665 // effective connection type or when writing the prefs.
667 bool disable_offline_check_; 666 bool disable_offline_check_;
668 667
669 // If true, default values provided by the platform are used for estimation. 668 // If true, default values provided by the platform are used for estimation.
670 const bool add_default_platform_observations_; 669 const bool add_default_platform_observations_;
671 670
672 // The factor by which the weight of an observation reduces every second.
673 const double weight_multiplier_per_second_;
674
675 // The factor by which the weight of an observation reduces for every dBm
676 // difference between the current signal strength (in dBm), and the signal
677 // strength at the time when the observation was taken.
678 const double weight_multiplier_per_dbm_;
679
680 // Algorithm to use for computing effective connection type. The value is 671 // Algorithm to use for computing effective connection type. The value is
681 // obtained from field trial parameters. If the value from field trial 672 // obtained from field trial parameters. If the value from field trial
682 // parameters is unavailable, it is set to 673 // parameters is unavailable, it is set to
683 // kDefaultEffectiveConnectionTypeAlgorithm. 674 // kDefaultEffectiveConnectionTypeAlgorithm.
684 const EffectiveConnectionTypeAlgorithm effective_connection_type_algorithm_; 675 const EffectiveConnectionTypeAlgorithm effective_connection_type_algorithm_;
685 676
686 // Tick clock used by the network quality estimator. 677 // Tick clock used by the network quality estimator.
687 std::unique_ptr<base::TickClock> tick_clock_; 678 std::unique_ptr<base::TickClock> tick_clock_;
688 679
689 // Intervals after the main frame request arrives at which accuracy of network 680 // Intervals after the main frame request arrives at which accuracy of network
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 // Last known value of the wireless signal strength. Set to INT32_MIN if 783 // Last known value of the wireless signal strength. Set to INT32_MIN if
793 // unavailable. |signal_strength_dbm_| is reset to INT32_MIN on connection 784 // unavailable. |signal_strength_dbm_| is reset to INT32_MIN on connection
794 // change events. 785 // change events.
795 int32_t signal_strength_dbm_; 786 int32_t signal_strength_dbm_;
796 787
797 // Minimum and maximum signal strength (in dBm) observed since last connection 788 // Minimum and maximum signal strength (in dBm) observed since last connection
798 // change. Updated on connection change and main frame requests. 789 // change. Updated on connection change and main frame requests.
799 int32_t min_signal_strength_since_connection_change_; 790 int32_t min_signal_strength_since_connection_change_;
800 int32_t max_signal_strength_since_connection_change_; 791 int32_t max_signal_strength_since_connection_change_;
801 792
802 // It is costlier to add values to a sparse histogram. So, the correlation UMA
803 // is recorded with |correlation_uma_logging_probability_| since recording it
804 // in a sparse histogram for each request is unnecessary and cost-prohibitive.
805 // e.g., if it is 0.0, then the UMA will never be recorded. On the other hand,
806 // if it is 1.0, then it will be recorded for all valid HTTP requests.
807 const double correlation_uma_logging_probability_;
808
809 // Stores the qualities of different networks. 793 // Stores the qualities of different networks.
810 std::unique_ptr<nqe::internal::NetworkQualityStore> network_quality_store_; 794 std::unique_ptr<nqe::internal::NetworkQualityStore> network_quality_store_;
811 795
812 // True if effective connection type value has been forced via variation
813 // parameters. If set to true, GetEffectiveConnectionType() will always return
814 // |forced_effective_connection_type_|.
815 const bool forced_effective_connection_type_set_;
816 const EffectiveConnectionType forced_effective_connection_type_;
817
818 // Set to true if reading of the network quality prefs is enabled. 796 // Set to true if reading of the network quality prefs is enabled.
819 const bool persistent_cache_reading_enabled_; 797 const bool persistent_cache_reading_enabled_;
RyanSturm 2017/05/03 17:41:02 move this too
tbansal1 2017/05/03 23:17:25 Done.
820 798
821 base::ThreadChecker thread_checker_; 799 base::ThreadChecker thread_checker_;
822 800
823 // Manages the writing of events to the net log. 801 // Manages the writing of events to the net log.
824 nqe::internal::EventCreator event_creator_; 802 nqe::internal::EventCreator event_creator_;
825 803
826 // Vector that contains observation sources that should not be used when 804 // Vector that contains observation sources that should not be used when
827 // computing the estimate at HTTP layer. 805 // computing the estimate at HTTP layer.
828 const std::vector<NetworkQualityObservationSource> 806 const std::vector<NetworkQualityObservationSource>
829 disallowed_observation_sources_for_http_; 807 disallowed_observation_sources_for_http_;
830 808
831 // Vector that contains observation sources that should not be used when 809 // Vector that contains observation sources that should not be used when
832 // computing the estimate at transport layer. 810 // computing the estimate at transport layer.
833 const std::vector<NetworkQualityObservationSource> 811 const std::vector<NetworkQualityObservationSource>
834 disallowed_observation_sources_for_transport_; 812 disallowed_observation_sources_for_transport_;
835 813
836 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_; 814 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_;
837 815
838 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator); 816 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator);
839 }; 817 };
840 818
841 } // namespace net 819 } // namespace net
842 820
843 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ 821 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698