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

Side by Side Diff: components/metrics/metrics_state_manager.h

Issue 945603003: Add a histogram to debug metrics entropy source use. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | components/metrics/metrics_state_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_ 5 #ifndef COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_
6 #define COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_ 6 #define COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 PermutedEntropyCacheClearedWhenLowEntropyReset); 83 PermutedEntropyCacheClearedWhenLowEntropyReset);
84 FRIEND_TEST_ALL_PREFIXES(MetricsStateManagerTest, ResetMetricsIDs); 84 FRIEND_TEST_ALL_PREFIXES(MetricsStateManagerTest, ResetMetricsIDs);
85 85
86 // Designates which entropy source was returned from this class. 86 // Designates which entropy source was returned from this class.
87 // This is used for testing to validate that we return the correct source 87 // This is used for testing to validate that we return the correct source
88 // depending on the state of the service. 88 // depending on the state of the service.
89 enum EntropySourceType { 89 enum EntropySourceType {
90 ENTROPY_SOURCE_NONE, 90 ENTROPY_SOURCE_NONE,
91 ENTROPY_SOURCE_LOW, 91 ENTROPY_SOURCE_LOW,
92 ENTROPY_SOURCE_HIGH, 92 ENTROPY_SOURCE_HIGH,
93 ENTROPY_SOURCE_ENUM_SIZE,
93 }; 94 };
94 95
95 // Creates the MetricsStateManager with the given |local_state|. Calls 96 // Creates the MetricsStateManager with the given |local_state|. Calls
96 // |is_reporting_enabled_callback| to query whether metrics reporting is 97 // |is_reporting_enabled_callback| to query whether metrics reporting is
97 // enabled. Clients should instead use Create(), which enforces that a single 98 // enabled. Clients should instead use Create(), which enforces that a single
98 // instance of this class be alive at any given time. 99 // instance of this class be alive at any given time.
99 // |store_client_info| should back up client info to persistent storage such 100 // |store_client_info| should back up client info to persistent storage such
100 // that it is later retrievable by |load_client_info|. 101 // that it is later retrievable by |load_client_info|.
101 MetricsStateManager( 102 MetricsStateManager(
102 PrefService* local_state, 103 PrefService* local_state,
103 const base::Callback<bool(void)>& is_reporting_enabled_callback, 104 const base::Callback<bool(void)>& is_reporting_enabled_callback,
104 const StoreClientInfoCallback& store_client_info, 105 const StoreClientInfoCallback& store_client_info,
105 const LoadClientInfoCallback& load_client_info); 106 const LoadClientInfoCallback& load_client_info);
106 107
107 // Backs up the current client info via |store_client_info_|. 108 // Backs up the current client info via |store_client_info_|.
108 void BackUpCurrentClientInfo(); 109 void BackUpCurrentClientInfo();
109 110
110 // Loads the client info via |load_client_info_| and potentially migrates it 111 // Loads the client info via |load_client_info_| and potentially migrates it
111 // before returning it if it comes back in its old form. 112 // before returning it if it comes back in its old form.
112 scoped_ptr<ClientInfo> LoadClientInfoAndMaybeMigrate(); 113 scoped_ptr<ClientInfo> LoadClientInfoAndMaybeMigrate();
113 114
114 // Returns the low entropy source for this client. This is a random value 115 // Returns the low entropy source for this client. This is a random value
115 // that is non-identifying amongst browser clients. This method will 116 // that is non-identifying amongst browser clients. This method will
116 // generate the entropy source value if it has not been called before. 117 // generate the entropy source value if it has not been called before.
117 int GetLowEntropySource(); 118 int GetLowEntropySource();
118 119
120 // Updates |entropy_source_returned_| with |type| iff the current value is
121 // ENTROPY_SOURCE_NONE and logs the new value in a histogram.
122 void UpdateEntropySourceReturnedValue(EntropySourceType type);
123
119 // Returns the first entropy source that was returned by this service since 124 // Returns the first entropy source that was returned by this service since
120 // start up, or NONE if neither was returned yet. This is exposed for testing 125 // start up, or NONE if neither was returned yet. This is exposed for testing
121 // only. 126 // only.
122 EntropySourceType entropy_source_returned() const { 127 EntropySourceType entropy_source_returned() const {
123 return entropy_source_returned_; 128 return entropy_source_returned_;
124 } 129 }
125 130
126 // Reset the client id and low entropy source if the kMetricsResetMetricIDs 131 // Reset the client id and low entropy source if the kMetricsResetMetricIDs
127 // pref is true. 132 // pref is true.
128 void ResetMetricsIDsIfNecessary(); 133 void ResetMetricsIDsIfNecessary();
(...skipping 27 matching lines...) Expand all
156 EntropySourceType entropy_source_returned_; 161 EntropySourceType entropy_source_returned_;
157 162
158 scoped_ptr<ClonedInstallDetector> cloned_install_detector_; 163 scoped_ptr<ClonedInstallDetector> cloned_install_detector_;
159 164
160 DISALLOW_COPY_AND_ASSIGN(MetricsStateManager); 165 DISALLOW_COPY_AND_ASSIGN(MetricsStateManager);
161 }; 166 };
162 167
163 } // namespace metrics 168 } // namespace metrics
164 169
165 #endif // COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_ 170 #endif // COMPONENTS_METRICS_METRICS_STATE_MANAGER_H_
OLDNEW
« no previous file with comments | « no previous file | components/metrics/metrics_state_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698