metrics_reporting_default_state.cc 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2016 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/metrics/metrics_reporting_default_state.h"
  5. #include "components/metrics/metrics_pref_names.h"
  6. #include "components/prefs/pref_registry_simple.h"
  7. #include "components/prefs/pref_service.h"
  8. namespace metrics {
  9. void RegisterMetricsReportingStatePrefs(PrefRegistrySimple* registry) {
  10. registry->RegisterIntegerPref(prefs::kMetricsDefaultOptIn,
  11. EnableMetricsDefault::DEFAULT_UNKNOWN);
  12. }
  13. void RecordMetricsReportingDefaultState(PrefService* local_state,
  14. EnableMetricsDefault default_state) {
  15. DCHECK_EQ(GetMetricsReportingDefaultState(local_state),
  16. EnableMetricsDefault::DEFAULT_UNKNOWN);
  17. local_state->SetInteger(prefs::kMetricsDefaultOptIn, default_state);
  18. }
  19. void ForceRecordMetricsReportingDefaultState(
  20. PrefService* local_state,
  21. EnableMetricsDefault default_state) {
  22. local_state->SetInteger(prefs::kMetricsDefaultOptIn, default_state);
  23. }
  24. EnableMetricsDefault GetMetricsReportingDefaultState(PrefService* local_state) {
  25. return static_cast<EnableMetricsDefault>(
  26. local_state->GetInteger(prefs::kMetricsDefaultOptIn));
  27. }
  28. } // namespace metrics