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

Side by Side Diff: chrome/browser/metrics/metrics_service.h

Issue 213363004: Resetting metrics ids on clump detection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This file defines a service that collects information about the user 5 // This file defines a service that collects information about the user
6 // experience in order to help improve future versions of the app. 6 // experience in order to help improve future versions of the app.
7 7
8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
10 10
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 MetricsService(); 135 MetricsService();
136 virtual ~MetricsService(); 136 virtual ~MetricsService();
137 137
138 // Initializes metrics recording state. Updates various bookkeeping values in 138 // Initializes metrics recording state. Updates various bookkeeping values in
139 // prefs and sets up the scheduler. This is a separate function rather than 139 // prefs and sets up the scheduler. This is a separate function rather than
140 // being done by the constructor so that field trials could be created before 140 // being done by the constructor so that field trials could be created before
141 // this is run. Takes |reporting_state| parameter which specifies whether UMA 141 // this is run. Takes |reporting_state| parameter which specifies whether UMA
142 // is enabled. 142 // is enabled.
143 void InitializeMetricsRecordingState(ReportingState reporting_state); 143 void InitializeMetricsRecordingState(ReportingState reporting_state);
144 144
145 // Initializes low entropy source, and, if the client has
146 void InitializeVariationsState(bool recording_enabled);
Alexei Svitkine (slow) 2014/03/28 15:00:17 It's not really variations state, since UMA client
jwd 2014/03/28 16:23:50 Done.
147
145 // Starts the metrics system, turning on recording and uploading of metrics. 148 // Starts the metrics system, turning on recording and uploading of metrics.
146 // Should be called when starting up with metrics enabled, or when metrics 149 // Should be called when starting up with metrics enabled, or when metrics
147 // are turned on. 150 // are turned on.
148 void Start(); 151 void Start();
149 152
150 // Starts the metrics system in a special test-only mode. Metrics won't ever 153 // Starts the metrics system in a special test-only mode. Metrics won't ever
151 // be uploaded or persisted in this mode, but metrics will be recorded in 154 // be uploaded or persisted in this mode, but metrics will be recorded in
152 // memory. 155 // memory.
153 void StartRecordingForTests(); 156 void StartRecordingForTests();
154 157
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 // is registered for a given trial name will be recorded. The values passed 289 // is registered for a given trial name will be recorded. The values passed
287 // in must not correspond to any real field trial in the code. 290 // in must not correspond to any real field trial in the code.
288 // To use this method, SyntheticTrialGroup should friend your class. 291 // To use this method, SyntheticTrialGroup should friend your class.
289 void RegisterSyntheticFieldTrial(const SyntheticTrialGroup& trial_group); 292 void RegisterSyntheticFieldTrial(const SyntheticTrialGroup& trial_group);
290 293
291 // Check if this install was cloned or imaged from another machine. If a 294 // Check if this install was cloned or imaged from another machine. If a
292 // clone is detected, reset the client id and low entropy source. This 295 // clone is detected, reset the client id and low entropy source. This
293 // should not be called more than once. 296 // should not be called more than once.
294 void CheckForClonedInstall(); 297 void CheckForClonedInstall();
295 298
299 void ResetVariationsState();
Alexei Svitkine (slow) 2014/03/28 15:00:17 Private?
jwd 2014/03/28 16:23:50 Done.
300
296 private: 301 private:
297 // The MetricsService has a lifecycle that is stored as a state. 302 // The MetricsService has a lifecycle that is stored as a state.
298 // See metrics_service.cc for description of this lifecycle. 303 // See metrics_service.cc for description of this lifecycle.
299 enum State { 304 enum State {
300 INITIALIZED, // Constructor was called. 305 INITIALIZED, // Constructor was called.
301 INIT_TASK_SCHEDULED, // Waiting for deferred init tasks to 306 INIT_TASK_SCHEDULED, // Waiting for deferred init tasks to
302 // complete. 307 // complete.
303 INIT_TASK_DONE, // Waiting for timer to send initial log. 308 INIT_TASK_DONE, // Waiting for timer to send initial log.
304 SENDING_INITIAL_STABILITY_LOG, // Initial stability log being sent. 309 SENDING_INITIAL_STABILITY_LOG, // Initial stability log being sent.
305 SENDING_INITIAL_METRICS_LOG, // Initial metrics log being sent. 310 SENDING_INITIAL_METRICS_LOG, // Initial metrics log being sent.
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 521
517 // Returns a list of synthetic field trials that were active for the entire 522 // Returns a list of synthetic field trials that were active for the entire
518 // duration of the current log. 523 // duration of the current log.
519 void GetCurrentSyntheticFieldTrials( 524 void GetCurrentSyntheticFieldTrials(
520 std::vector<chrome_variations::ActiveGroupId>* synthetic_trials); 525 std::vector<chrome_variations::ActiveGroupId>* synthetic_trials);
521 526
522 base::ActionCallback action_callback_; 527 base::ActionCallback action_callback_;
523 528
524 content::NotificationRegistrar registrar_; 529 content::NotificationRegistrar registrar_;
525 530
531 bool variations_state_initialized_;
532
526 // Indicate whether recording and reporting are currently happening. 533 // Indicate whether recording and reporting are currently happening.
527 // These should not be set directly, but by calling SetRecording and 534 // These should not be set directly, but by calling SetRecording and
528 // SetReporting. 535 // SetReporting.
529 bool recording_active_; 536 bool recording_active_;
530 bool reporting_active_; 537 bool reporting_active_;
531 538
532 // Indicate whether test mode is enabled, where the initial log should never 539 // Indicate whether test mode is enabled, where the initial log should never
533 // be cut, and logs are neither persisted nor uploaded. 540 // be cut, and logs are neither persisted nor uploaded.
534 bool test_mode_active_; 541 bool test_mode_active_;
535 542
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 675
669 // Returns true if crash reporting is enabled. This is set at the platform 676 // Returns true if crash reporting is enabled. This is set at the platform
670 // level for Android and ChromeOS, and otherwise is the same as 677 // level for Android and ChromeOS, and otherwise is the same as
671 // IsMetricsReportingEnabled for desktop Chrome. 678 // IsMetricsReportingEnabled for desktop Chrome.
672 static bool IsCrashReportingEnabled(); 679 static bool IsCrashReportingEnabled();
673 680
674 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper); 681 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper);
675 }; 682 };
676 683
677 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 684 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698