| Index: ash/metrics/user_metrics_recorder.h
|
| diff --git a/ash/metrics/user_metrics_recorder.h b/ash/metrics/user_metrics_recorder.h
|
| index da39a1063c89f0923feafa03646277d667b74631..afc7ad7c21bc3f16dcbcee07a3cf6f6e06ada33b 100644
|
| --- a/ash/metrics/user_metrics_recorder.h
|
| +++ b/ash/metrics/user_metrics_recorder.h
|
| @@ -10,6 +10,10 @@
|
|
|
| namespace ash {
|
|
|
| +namespace test {
|
| +class UserMetricsRecorderTestAPI;
|
| +}
|
| +
|
| enum UserMetricsAction {
|
| UMA_ACCEL_EXIT_FIRST_Q,
|
| UMA_ACCEL_EXIT_SECOND_Q,
|
| @@ -127,14 +131,40 @@ enum UserMetricsAction {
|
| // (RecordUserMetricsAction) are passed through the UserMetricsRecorder.
|
| class ASH_EXPORT UserMetricsRecorder {
|
| public:
|
| + // Creates a UserMetricsRecorder that records metrics periodically. Equivalent
|
| + // to calling UserMetricsRecorder(true).
|
| UserMetricsRecorder();
|
| - ~UserMetricsRecorder();
|
|
|
| + virtual ~UserMetricsRecorder();
|
| +
|
| + // Records an Ash owned user action.
|
| void RecordUserMetricsAction(ash::UserMetricsAction action);
|
| +
|
| private:
|
| + friend class test::UserMetricsRecorderTestAPI;
|
| +
|
| + // Creates a UserMetricsRecorder and will only record periodic metrics if
|
| + // |record_periodic_metrics| is true. This is used by tests that do not want
|
| + // the timer to be started.
|
| + // TODO(bruthig): Add a constructor that accepts a base::RepeatingTimer so
|
| + // that tests can inject a test double that can be controlled by the test. The
|
| + // missing piece is a suitable base::RepeatingTimer test double.
|
| + explicit UserMetricsRecorder(bool record_periodic_metrics);
|
| +
|
| + // Records UMA metrics. Invoked periodically by the |timer_|.
|
| void RecordPeriodicMetrics();
|
|
|
| + // Returns true if the user's session is active and they are in a desktop
|
| + // environment.
|
| + bool IsUserInActiveDesktopEnvironment() const;
|
| +
|
| + // Starts the |timer_| and binds it to |RecordPeriodicMetrics|.
|
| + void StartTimer();
|
| +
|
| + // The periodic timer that triggers metrics to be recorded.
|
| base::RepeatingTimer<UserMetricsRecorder> timer_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(UserMetricsRecorder);
|
| };
|
|
|
| } // namespace ash
|
|
|