Chromium Code Reviews| Index: chrome/browser/metrics/chrome_metrics_services_manager_client.cc |
| diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc |
| index 81188abb9677b3043801bd3041a1ed3d665a6fde..404a57d6659666c3fff06b288d089507045bac1f 100644 |
| --- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc |
| +++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc |
| @@ -20,6 +20,11 @@ |
| #include "components/variations/service/variations_service.h" |
| #include "content/public/browser/browser_thread.h" |
| +#if defined(OS_CHROMEOS) |
| +#include "chrome/browser/chromeos/settings/cros_settings.h" |
| +#include "chromeos/settings/cros_settings_names.h" |
| +#endif // defined(OS_CHROMEOS) |
| + |
| namespace { |
| // Posts |GoogleUpdateSettings::StoreMetricsClientInfo| on blocking pool thread |
| @@ -30,12 +35,25 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) { |
| base::Bind(&GoogleUpdateSettings::StoreMetricsClientInfo, client_info)); |
| } |
| +// Initialize kMetricsReportingEnabled based on kStatsReportingPref device |
| +// setting and add an observer as it is the source of truth on Chrome OS. |
| +void SetupMetricsStateForChromeOS() { |
|
Alexei Svitkine (slow)
2015/11/02 21:50:32
Suggest moving this to metrics_reporting_state.cc
gayane -on leave until 09-2017
2015/11/03 19:46:17
Done.
|
| +#if defined(OS_CHROMEOS) |
| + chromeos::CrosSettings::Get()->AddSettingsObserver( |
| + chromeos::kStatsReportingPref, base::Bind(&onDeviceSettingsChange)); |
| + |
| + onDeviceSettingsChange(); |
| +#endif // defined(OS_CHROMEOS) |
| +} |
| + |
| } // namespace |
| ChromeMetricsServicesManagerClient::ChromeMetricsServicesManagerClient( |
| PrefService* local_state) |
| : local_state_(local_state) { |
| DCHECK(local_state); |
| + |
| + SetupMetricsStateForChromeOS(); |
| } |
| ChromeMetricsServicesManagerClient::~ChromeMetricsServicesManagerClient() {} |