| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_METRICS_METRICS_REPORTING_DEFAULT_STATE_H_ |
| #define COMPONENTS_METRICS_METRICS_REPORTING_DEFAULT_STATE_H_ |
| |
| class PrefRegistrySimple; |
| class PrefService; |
| |
| namespace metrics { |
| |
| // Metrics reporting default state. This relates to the state of the enable |
| // checkbox shown on first-run. This enum is used to store values in a pref, and |
| // shouldn't be renumbered. |
| enum EnableMetricsDefault { |
| // We only record the value during first-run. The default of existing |
| // installs is considered unknown. |
| DEFAULT_UNKNOWN, |
| // The first-run checkbox was unchecked by default. |
| OPT_IN, |
| // The first-run checkbox was checked by default. |
| OPT_OUT, |
| }; |
| |
| // Register prefs relating to metrics reporting state. Currently only registers |
| // a pref for metrics reporting default opt-in state. |
| void RegisterMetricsReportingStatePrefs(PrefRegistrySimple* registry); |
| |
| // Sets whether metrics reporting was opt-in or not. If it was opt-in, then the |
| // enable checkbox on first-run was default unchecked. If it was opt-out, then |
| // the checkbox was default checked. This should only be set once, and only |
| // during first-run. |
| void RecordMetricsReportingDefaultState(PrefService* local_state, |
| EnableMetricsDefault default_state); |
| |
| // Same as above, but does not verify the current state is UNKNOWN. |
| void ForceRecordMetricsReportingDefaultState( |
| PrefService* local_state, |
| EnableMetricsDefault default_state); |
| |
| // Gets information about the default value for the enable metrics reporting |
| // checkbox shown during first-run. |
| EnableMetricsDefault GetMetricsReportingDefaultState(PrefService* local_state); |
| |
| } // namespace metrics |
| |
| #endif // COMPONENTS_METRICS_METRICS_REPORTING_DEFAULT_STATE_H_ |