Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(953)

Side by Side Diff: chrome/browser/metrics/chrome_metrics_service_accessor.cc

Issue 916133003: Fix ChromeMetricsServiceAccessor::IsMetricsReportingEnabled on CrOs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make MetricsServicesManager::IsMetricsReportingEnabled private Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" 5 #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
6 6
7 #include "base/command_line.h"
7 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/metrics/metrics_services_manager.h"
11 #include "chrome/common/chrome_switches.h"
9 #include "chrome/common/pref_names.h" 12 #include "chrome/common/pref_names.h"
10 #include "components/metrics/metrics_service.h" 13 #include "components/metrics/metrics_service.h"
11 #include "components/variations/metrics_util.h" 14 #include "components/variations/metrics_util.h"
12 15
13 #if defined(OS_CHROMEOS) 16 #if defined(OS_CHROMEOS)
14 #include "chrome/browser/chromeos/settings/cros_settings.h" 17 #include "chrome/browser/chromeos/settings/cros_settings.h"
15 #endif 18 #endif
16 19
17 // static 20 // static
18 bool ChromeMetricsServiceAccessor::IsMetricsReportingEnabled() { 21 bool ChromeMetricsServiceAccessor::IsMetricsReportingEnabled() {
19 bool result = false; 22 // If the user permits metrics reporting with the checkbox in the
20 const PrefService* local_state = g_browser_process->local_state(); 23 // prefs, we turn on recording. We disable metrics completely for
21 if (local_state) { 24 // non-official builds, or when field trials are forced.
22 const PrefService::Preference* uma_pref = 25 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
23 local_state->FindPreference(prefs::kMetricsReportingEnabled); 26 switches::kForceFieldTrials))
Alexei Svitkine (slow) 2015/02/12 15:58:46 Nit: While you're touching this, add {}'s here.
anthonyvd 2015/02/12 16:29:19 Done.
24 if (uma_pref) { 27 return false;
25 bool success = uma_pref->GetValue()->GetAsBoolean(&result); 28
26 DCHECK(success); 29 bool enabled = false;
27 } 30 #if defined(GOOGLE_CHROME_BUILD)
28 } 31 #if defined(OS_CHROMEOS)
29 return result; 32 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref,
33 &enabled);
34 #else
35 enabled = local_state_->GetBoolean(prefs::kMetricsReportingEnabled);
Alexei Svitkine (slow) 2015/02/12 15:58:46 I don't think this will compile, since there's no
anthonyvd 2015/02/12 16:29:19 Done.
36 #endif // #if defined(OS_CHROMEOS)
37 #endif // defined(GOOGLE_CHROME_BUILD)
38 return enabled;
30 } 39 }
31 40
32 bool ChromeMetricsServiceAccessor::IsCrashReportingEnabled() { 41 bool ChromeMetricsServiceAccessor::IsCrashReportingEnabled() {
33 #if defined(GOOGLE_CHROME_BUILD) 42 #if defined(GOOGLE_CHROME_BUILD)
34 #if defined(OS_CHROMEOS) 43 #if defined(OS_ANDROID)
35 bool reporting_enabled = false;
36 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref,
37 &reporting_enabled);
38 return reporting_enabled;
39 #elif defined(OS_ANDROID)
40 // Android has its own settings for metrics / crash uploading. 44 // Android has its own settings for metrics / crash uploading.
41 const PrefService* prefs = g_browser_process->local_state(); 45 const PrefService* prefs = g_browser_process->local_state();
42 return prefs->GetBoolean(prefs::kCrashReportingEnabled); 46 return prefs->GetBoolean(prefs::kCrashReportingEnabled);
43 #else 47 #else
44 return ChromeMetricsServiceAccessor::IsMetricsReportingEnabled(); 48 return ChromeMetricsServiceAccessor::IsMetricsReportingEnabled();
45 #endif 49 #endif
46 #else 50 #else
47 return false; 51 return false;
48 #endif 52 #endif
49 } 53 }
50 54
51 // static 55 // static
52 bool ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( 56 bool ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial(
53 const std::string& trial_name, 57 const std::string& trial_name,
54 const std::string& group_name) { 58 const std::string& group_name) {
55 return RegisterSyntheticFieldTrialWithNameHash(metrics::HashName(trial_name), 59 return RegisterSyntheticFieldTrialWithNameHash(metrics::HashName(trial_name),
56 group_name); 60 group_name);
57 } 61 }
58 62
59 // static 63 // static
60 bool ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrialWithNameHash( 64 bool ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrialWithNameHash(
61 uint32_t trial_name_hash, 65 uint32_t trial_name_hash,
62 const std::string& group_name) { 66 const std::string& group_name) {
63 return metrics::MetricsServiceAccessor::RegisterSyntheticFieldTrial( 67 return metrics::MetricsServiceAccessor::RegisterSyntheticFieldTrial(
64 g_browser_process->metrics_service(), 68 g_browser_process->metrics_service(),
65 trial_name_hash, 69 trial_name_hash,
66 metrics::HashName(group_name)); 70 metrics::HashName(group_name));
67 } 71 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698