1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "components/metrics/enabled_state_provider.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/base_switches.h" 8*6777b538SAndroid Build Coastguard Worker #include "base/command_line.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace metrics { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker namespace { 13*6777b538SAndroid Build Coastguard Worker // Some browser_tests enable metrics reporting independent of the presence of 14*6777b538SAndroid Build Coastguard Worker // kForceFieldTrials: 15*6777b538SAndroid Build Coastguard Worker // - MetricsServiceBrowserFilesTest.FilesRemain 16*6777b538SAndroid Build Coastguard Worker // - MetricsInternalsUIBrowserTestWithLog.All 17*6777b538SAndroid Build Coastguard Worker bool g_ignore_force_field_trials_for_testing = false; 18*6777b538SAndroid Build Coastguard Worker } // namespace 19*6777b538SAndroid Build Coastguard Worker IsReportingEnabled() const20*6777b538SAndroid Build Coastguard Workerbool EnabledStateProvider::IsReportingEnabled() const { 21*6777b538SAndroid Build Coastguard Worker // Disable metrics reporting when field trials are forced, as otherwise this 22*6777b538SAndroid Build Coastguard Worker // would pollute experiment results in UMA. Note: This is done here and not 23*6777b538SAndroid Build Coastguard Worker // in IsConsentGiven() as we do not want this to affect field trial entropy 24*6777b538SAndroid Build Coastguard Worker // logic (i.e. high entropy source should still be used if UMA is on). 25*6777b538SAndroid Build Coastguard Worker return IsConsentGiven() && 26*6777b538SAndroid Build Coastguard Worker (g_ignore_force_field_trials_for_testing || 27*6777b538SAndroid Build Coastguard Worker !base::CommandLine::ForCurrentProcess()->HasSwitch( 28*6777b538SAndroid Build Coastguard Worker switches::kForceFieldTrials)); 29*6777b538SAndroid Build Coastguard Worker } 30*6777b538SAndroid Build Coastguard Worker SetIgnoreForceFieldTrialsForTesting(bool ignore_trials)31*6777b538SAndroid Build Coastguard Workervoid EnabledStateProvider::SetIgnoreForceFieldTrialsForTesting( 32*6777b538SAndroid Build Coastguard Worker bool ignore_trials) { 33*6777b538SAndroid Build Coastguard Worker g_ignore_force_field_trials_for_testing = ignore_trials; 34*6777b538SAndroid Build Coastguard Worker } 35*6777b538SAndroid Build Coastguard Worker 36*6777b538SAndroid Build Coastguard Worker } // namespace metrics 37