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() {} |