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