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)); |
} |