123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- // Copyright 2014 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.
- #include "components/metrics/metrics_service_accessor.h"
- #include "base/base_switches.h"
- #include "build/branding_buildflags.h"
- #include "components/metrics/metrics_pref_names.h"
- #include "components/metrics/metrics_service.h"
- #include "components/metrics/metrics_switches.h"
- #include "components/prefs/pref_service.h"
- #include "components/variations/hashing.h"
- #include "components/variations/synthetic_trial_registry.h"
- namespace metrics {
- namespace {
- bool g_force_official_enabled_test = false;
- bool IsMetricsReportingEnabledForOfficialBuild(PrefService* pref_service) {
- return pref_service->GetBoolean(prefs::kMetricsReportingEnabled);
- }
- } // namespace
- // static
- bool MetricsServiceAccessor::IsMetricsReportingEnabled(
- PrefService* pref_service) {
- if (IsMetricsReportingForceEnabled()) {
- LOG(WARNING) << "Metrics Reporting is force enabled, data will be sent to "
- "servers. Should not be used for tests.";
- return true;
- }
- #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
- return IsMetricsReportingEnabledForOfficialBuild(pref_service);
- #else
- // In non-official builds, disable metrics reporting completely.
- return g_force_official_enabled_test
- ? IsMetricsReportingEnabledForOfficialBuild(pref_service)
- : false;
- #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
- }
- // static
- bool MetricsServiceAccessor::RegisterSyntheticFieldTrial(
- MetricsService* metrics_service,
- base::StringPiece trial_name,
- base::StringPiece group_name,
- variations::SyntheticTrialAnnotationMode annotation_mode) {
- if (!metrics_service)
- return false;
- variations::SyntheticTrialGroup trial_group(trial_name, group_name,
- annotation_mode);
- metrics_service->GetSyntheticTrialRegistry()->RegisterSyntheticFieldTrial(
- trial_group);
- return true;
- }
- // static
- void MetricsServiceAccessor::SetForceIsMetricsReportingEnabledPrefLookup(
- bool value) {
- g_force_official_enabled_test = value;
- }
- // static
- bool MetricsServiceAccessor::IsForceMetricsReportingEnabledPrefLookup() {
- return g_force_official_enabled_test;
- }
- } // namespace metrics
|