| Index: chrome/browser/metrics/metrics_reporting_state.cc
|
| diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/metrics/metrics_reporting_state.cc
|
| index 0666443ab7fedd295dff34b461a5296985cffb99..5d128d1eb24c414fda9c9adf769cb3f7545450ab 100644
|
| --- a/chrome/browser/metrics/metrics_reporting_state.cc
|
| +++ b/chrome/browser/metrics/metrics_reporting_state.cc
|
| @@ -58,10 +58,12 @@ void SetMetricsReporting(bool to_update_pref,
|
| else
|
| metrics->Stop();
|
| }
|
| -#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
|
| +
|
| +#if !defined(OS_ANDROID)
|
| g_browser_process->local_state()->SetBoolean(
|
| metrics::prefs::kMetricsReportingEnabled, updated_pref);
|
| -#endif
|
| +#endif // !defined(OS_ANDROID)
|
| +
|
| // When a user opts in to the metrics reporting service, the previously
|
| // collected data should be cleared to ensure that nothing is reported before
|
| // a user opts in and all reported data is accurate.
|
| @@ -80,11 +82,13 @@ void SetMetricsReporting(bool to_update_pref,
|
|
|
| } // namespace
|
|
|
| +// TODO(gayane): Instead of checking policy before setting the metrics pref set
|
| +// the pref and register for notifications for the rest of the changes.
|
| void InitiateMetricsReportingChange(
|
| bool enabled,
|
| const OnMetricsReportingCallbackType& callback_fn) {
|
| -#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
|
| - if (!IsMetricsReportingUserChangable()) {
|
| +#if !defined(OS_ANDROID)
|
| + if (IsMetricsReportingPolicyManaged()) {
|
| if (!callback_fn.is_null()) {
|
| callback_fn.Run(
|
| ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled());
|
| @@ -100,9 +104,9 @@ void InitiateMetricsReportingChange(
|
| base::Bind(&SetMetricsReporting, enabled, callback_fn));
|
| }
|
|
|
| -bool IsMetricsReportingUserChangable() {
|
| +bool IsMetricsReportingPolicyManaged() {
|
| const PrefService* pref_service = g_browser_process->local_state();
|
| const PrefService::Preference* pref =
|
| pref_service->FindPreference(metrics::prefs::kMetricsReportingEnabled);
|
| - return pref && !pref->IsManaged();
|
| + return pref && pref->IsManaged();
|
| }
|
|
|