37 lines
1.3 KiB
C++
37 lines
1.3 KiB
C++
// Copyright 2016 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "components/metrics/enabled_state_provider.h"
|
|
|
|
#include "base/base_switches.h"
|
|
#include "base/command_line.h"
|
|
|
|
namespace metrics {
|
|
|
|
namespace {
|
|
// Some browser_tests enable metrics reporting independent of the presence of
|
|
// kForceFieldTrials:
|
|
// - MetricsServiceBrowserFilesTest.FilesRemain
|
|
// - MetricsInternalsUIBrowserTestWithLog.All
|
|
bool g_ignore_force_field_trials_for_testing = false;
|
|
} // namespace
|
|
|
|
bool EnabledStateProvider::IsReportingEnabled() const {
|
|
// Disable metrics reporting when field trials are forced, as otherwise this
|
|
// would pollute experiment results in UMA. Note: This is done here and not
|
|
// in IsConsentGiven() as we do not want this to affect field trial entropy
|
|
// logic (i.e. high entropy source should still be used if UMA is on).
|
|
return IsConsentGiven() &&
|
|
(g_ignore_force_field_trials_for_testing ||
|
|
!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
|
switches::kForceFieldTrials));
|
|
}
|
|
|
|
void EnabledStateProvider::SetIgnoreForceFieldTrialsForTesting(
|
|
bool ignore_trials) {
|
|
g_ignore_force_field_trials_for_testing = ignore_trials;
|
|
}
|
|
|
|
} // namespace metrics
|