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

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

Issue 1411863002: Use kMetricsReportingEnabled instead of kStatsReporingPref on metrics side (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unittests Created 5 years, 1 month 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/metrics_reporting_state.h" 5 #include "chrome/browser/metrics/metrics_reporting_state.h"
6 6
7 #include "base/callback.h" 7 #include "base/callback.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 void SetMetricsReporting(bool to_update_pref, 51 void SetMetricsReporting(bool to_update_pref,
52 const OnMetricsReportingCallbackType& callback_fn, 52 const OnMetricsReportingCallbackType& callback_fn,
53 bool updated_pref) { 53 bool updated_pref) {
54 metrics::MetricsService* metrics = g_browser_process->metrics_service(); 54 metrics::MetricsService* metrics = g_browser_process->metrics_service();
55 if (metrics) { 55 if (metrics) {
56 if (updated_pref) 56 if (updated_pref)
57 metrics->Start(); 57 metrics->Start();
58 else 58 else
59 metrics->Stop(); 59 metrics->Stop();
60 } 60 }
61 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) 61
62 #if !defined(OS_ANDROID)
62 g_browser_process->local_state()->SetBoolean( 63 g_browser_process->local_state()->SetBoolean(
63 metrics::prefs::kMetricsReportingEnabled, updated_pref); 64 metrics::prefs::kMetricsReportingEnabled, updated_pref);
64 #endif 65 #endif //! defined(OS_ANDROID)
Mattias Nissler (ping if slow) 2015/10/28 09:51:15 nit: misplaced !
gayane -on leave until 09-2017 2015/10/28 15:00:07 Done.
66
65 // When a user opts in to the metrics reporting service, the previously 67 // When a user opts in to the metrics reporting service, the previously
66 // collected data should be cleared to ensure that nothing is reported before 68 // collected data should be cleared to ensure that nothing is reported before
67 // a user opts in and all reported data is accurate. 69 // a user opts in and all reported data is accurate.
68 if (updated_pref && metrics) 70 if (updated_pref && metrics)
69 metrics->ClearSavedStabilityMetrics(); 71 metrics->ClearSavedStabilityMetrics();
70 72
71 if (to_update_pref == updated_pref) { 73 if (to_update_pref == updated_pref) {
72 RecordMetricsReportingHistogramValue(updated_pref ? 74 RecordMetricsReportingHistogramValue(updated_pref ?
73 METRICS_REPORTING_ENABLED : METRICS_REPORTING_DISABLED); 75 METRICS_REPORTING_ENABLED : METRICS_REPORTING_DISABLED);
74 } else { 76 } else {
75 RecordMetricsReportingHistogramValue(METRICS_REPORTING_ERROR); 77 RecordMetricsReportingHistogramValue(METRICS_REPORTING_ERROR);
76 } 78 }
77 if (!callback_fn.is_null()) 79 if (!callback_fn.is_null())
78 callback_fn.Run(updated_pref); 80 callback_fn.Run(updated_pref);
79 } 81 }
80 82
81 } // namespace 83 } // namespace
82 84
85 // TODO(gayane): Instead of checking policy before setting the metrics pref set
86 // the pref and register for notifications for the rest of the changes.
83 void InitiateMetricsReportingChange( 87 void InitiateMetricsReportingChange(
84 bool enabled, 88 bool enabled,
85 const OnMetricsReportingCallbackType& callback_fn) { 89 const OnMetricsReportingCallbackType& callback_fn) {
86 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) 90 #if !defined(OS_ANDROID)
87 if (!IsMetricsReportingUserChangable()) { 91 if (IsMetricsReportingPolicyManaged()) {
88 if (!callback_fn.is_null()) { 92 if (!callback_fn.is_null()) {
89 callback_fn.Run( 93 callback_fn.Run(
90 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled()); 94 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled());
91 } 95 }
92 return; 96 return;
93 } 97 }
94 #endif 98 #endif
95 // Posts to FILE thread as SetGoogleUpdateSettings does IO operations. 99 // Posts to FILE thread as SetGoogleUpdateSettings does IO operations.
96 content::BrowserThread::PostTaskAndReplyWithResult( 100 content::BrowserThread::PostTaskAndReplyWithResult(
97 content::BrowserThread::FILE, 101 content::BrowserThread::FILE,
98 FROM_HERE, 102 FROM_HERE,
99 base::Bind(&SetGoogleUpdateSettings, enabled), 103 base::Bind(&SetGoogleUpdateSettings, enabled),
100 base::Bind(&SetMetricsReporting, enabled, callback_fn)); 104 base::Bind(&SetMetricsReporting, enabled, callback_fn));
101 } 105 }
102 106
103 bool IsMetricsReportingUserChangable() { 107 bool IsMetricsReportingPolicyManaged() {
104 const PrefService* pref_service = g_browser_process->local_state(); 108 const PrefService* pref_service = g_browser_process->local_state();
105 const PrefService::Preference* pref = 109 const PrefService::Preference* pref =
106 pref_service->FindPreference(metrics::prefs::kMetricsReportingEnabled); 110 pref_service->FindPreference(metrics::prefs::kMetricsReportingEnabled);
107 return pref && !pref->IsManaged(); 111 return pref && pref->IsManaged();
108 } 112 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698