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

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

Issue 1958003003: Splitting the concept of UMA consent, and should UMA report. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 64cb51ccae3868329392e79e58f1db66142ebad2..d7ef150b474e5cc1415e73545a41ac7d952bec63 100644
--- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
@@ -15,6 +15,7 @@
#include "chrome/browser/ui/browser_otr_state.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/installer/util/google_update_settings.h"
+#include "components/metrics/enabled_state_provider.h"
#include "components/metrics/metrics_state_manager.h"
#include "components/prefs/pref_service.h"
#include "components/rappor/rappor_service.h"
@@ -33,9 +34,23 @@ void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) {
} // namespace
+class ChromeMetricsServicesManagerClient::ChromeEnabledStateProvider
+ : public metrics::EnabledStateProvider {
+ public:
+ ChromeEnabledStateProvider() {}
+ ~ChromeEnabledStateProvider() override {}
+
+ bool IsConsentGiven() override {
+ return ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(ChromeEnabledStateProvider);
+};
+
ChromeMetricsServicesManagerClient::ChromeMetricsServicesManagerClient(
PrefService* local_state)
- : local_state_(local_state) {
+ : enabled_state_provider_(new ChromeEnabledStateProvider()),
+ local_state_(local_state) {
DCHECK(local_state);
SetupMetricsStateForChromeOS();
@@ -91,7 +106,7 @@ bool ChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled(
}
bool ChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() {
- return ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
+ return enabled_state_provider_->IsReportingEnabled();
}
bool ChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() {
@@ -105,9 +120,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() {
DCHECK(thread_checker_.CalledOnValidThread());
if (!metrics_state_manager_) {
metrics_state_manager_ = metrics::MetricsStateManager::Create(
- local_state_,
- base::Bind(
- &ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled),
+ local_state_, enabled_state_provider_.get(),
base::Bind(&PostStoreMetricsClientInfo),
base::Bind(&GoogleUpdateSettings::LoadMetricsClientInfo));
}

Powered by Google App Engine
This is Rietveld 408576698