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

Unified Diff: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm

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: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm
diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm
index 1337ab2c92b998542a0eafcfcedb0d0a297e4399..c94fc370c59ada87f364efd648cb75c6f6179a61 100644
--- a/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm
+++ b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm
@@ -7,6 +7,7 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "base/memory/ptr_util.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"
@@ -30,9 +31,23 @@ std::unique_ptr<metrics::ClientInfo> LoadMetricsClientInfo() {
} // namespace
+class IOSChromeMetricsServicesManagerClient::IOSChromeEnabledStateProvider
+ : public metrics::EnabledStateProvider {
+ public:
+ IOSChromeEnabledStateProvider() {}
+ ~IOSChromeEnabledStateProvider() override {}
+
+ bool IsConsentGiven() override {
+ return IOSChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(IOSChromeEnabledStateProvider);
+};
+
IOSChromeMetricsServicesManagerClient::IOSChromeMetricsServicesManagerClient(
PrefService* local_state)
- : local_state_(local_state) {
+ : enabled_state_provider_(new IOSChromeEnabledStateProvider()),
+ local_state_(local_state) {
DCHECK(local_state);
}
@@ -78,7 +93,7 @@ bool IOSChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled(
}
bool IOSChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() {
- return IOSChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
+ return enabled_state_provider_->IsReportingEnabled();
}
bool IOSChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() {
@@ -91,8 +106,7 @@ IOSChromeMetricsServicesManagerClient::GetMetricsStateManager() {
DCHECK(thread_checker_.CalledOnValidThread());
if (!metrics_state_manager_) {
metrics_state_manager_ = metrics::MetricsStateManager::Create(
- local_state_, base::Bind(&IOSChromeMetricsServiceAccessor::
- IsMetricsAndCrashReportingEnabled),
+ local_state_, enabled_state_provider_.get(),
base::Bind(&PostStoreMetricsClientInfo),
base::Bind(&LoadMetricsClientInfo));
}

Powered by Google App Engine
This is Rietveld 408576698