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

Unified Diff: chrome/browser/metrics/chrome_metrics_services_manager_client.cc

Issue 2793393002: CrOS settings/metrics: Correctly store Subscriptions (Closed)
Patch Set: . Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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 1da42ebd9f477c754c02b237826aeb0fcf9c78bf..4f3314ed577144147e289429cbeaf34f05a79fa6 100644
--- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
@@ -33,6 +33,10 @@
#include "components/crash/content/app/crashpad.h"
#endif // OS_WIN
+#if defined(OS_CHROMEOS)
+#include "chromeos/settings/cros_settings_names.h"
+#endif // defined(OS_CHROMEOS)
+
namespace {
#if defined(OS_WIN)
@@ -92,6 +96,17 @@ bool IsClientEligibleForSampling() {
metrics::EnableMetricsDefault::OPT_OUT;
}
+#if defined(OS_CHROMEOS)
+// Callback to update the metrics reporting state when the Chrome OS metrics
+// reporting setting changes.
+void OnCrosMetricsReportingSettingChange() {
+ bool enable_metrics = false;
+ chromeos::CrosSettings::Get()->GetBoolean(chromeos::kStatsReportingPref,
+ &enable_metrics);
+ ChangeMetricsReportingState(enable_metrics);
+}
+#endif
+
} // namespace
@@ -119,7 +134,13 @@ ChromeMetricsServicesManagerClient::ChromeMetricsServicesManagerClient(
local_state_(local_state) {
DCHECK(local_state);
- SetupMetricsStateForChromeOS();
+#if defined(OS_CHROMEOS)
+ cros_settings_observer_ = chromeos::CrosSettings::Get()->AddSettingsObserver(
+ chromeos::kStatsReportingPref,
+ base::Bind(&OnCrosMetricsReportingSettingChange));
+ // Invoke the callback once initially to set the metrics reporting state.
+ OnCrosMetricsReportingSettingChange();
+#endif
}
ChromeMetricsServicesManagerClient::~ChromeMetricsServicesManagerClient() {}
« no previous file with comments | « chrome/browser/metrics/chrome_metrics_services_manager_client.h ('k') | chrome/browser/metrics/metrics_reporting_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698