| Index: chromecast/browser/metrics/cast_metrics_service_client.cc
|
| diff --git a/chromecast/browser/metrics/cast_metrics_service_client.cc b/chromecast/browser/metrics/cast_metrics_service_client.cc
|
| index a6041cb60dcfa336a2651845a596cea994c165b7..8a06f57a704b3f136c59a529fec15ef268913e36 100644
|
| --- a/chromecast/browser/metrics/cast_metrics_service_client.cc
|
| +++ b/chromecast/browser/metrics/cast_metrics_service_client.cc
|
| @@ -22,6 +22,7 @@
|
| #include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
|
| #include "chromecast/public/cast_sys_info.h"
|
| #include "components/metrics/client_info.h"
|
| +#include "components/metrics/enabled_state_provider.h"
|
| #include "components/metrics/gpu/gpu_metrics_provider.h"
|
| #include "components/metrics/metrics_provider.h"
|
| #include "components/metrics/metrics_service.h"
|
| @@ -87,6 +88,23 @@ GetReleaseChannelFromUpdateChannelName(const std::string& channel_name) {
|
|
|
| } // namespace
|
|
|
| +class CastMetricsServiceClient::CastEnabledStateProvider
|
| + : public ::metrics::EnabledStateProvider {
|
| + public:
|
| + explicit CastEnabledStateProvider(PrefService* pref_service)
|
| + : pref_service_(pref_service) {}
|
| + ~CastEnabledStateProvider() override {}
|
| +
|
| + bool IsConsentGiven() override {
|
| + return pref_service_->GetBoolean(prefs::kOptInStats);
|
| + }
|
| +
|
| + private:
|
| + PrefService* const pref_service_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CastEnabledStateProvider);
|
| +};
|
| +
|
| // static
|
| std::unique_ptr<CastMetricsServiceClient> CastMetricsServiceClient::Create(
|
| base::TaskRunner* io_task_runner,
|
| @@ -288,6 +306,7 @@ CastMetricsServiceClient::CastMetricsServiceClient(
|
| platform_metrics_(nullptr),
|
| #endif // defined(OS_LINUX)
|
| task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| + enabled_state_provider_(new CastEnabledStateProvider(pref_service)),
|
| request_context_(request_context) {
|
| }
|
|
|
| @@ -326,9 +345,7 @@ void CastMetricsServiceClient::Initialize(CastService* cast_service) {
|
| cast_service_ = cast_service;
|
|
|
| metrics_state_manager_ = ::metrics::MetricsStateManager::Create(
|
| - pref_service_,
|
| - base::Bind(&CastMetricsServiceClient::IsReportingEnabled,
|
| - base::Unretained(this)),
|
| + pref_service_, enabled_state_provider_.get(),
|
| base::Bind(&CastMetricsServiceClient::StoreClientInfo,
|
| base::Unretained(this)),
|
| base::Bind(&CastMetricsServiceClient::LoadClientInfo,
|
| @@ -377,7 +394,7 @@ void CastMetricsServiceClient::Initialize(CastService* cast_service) {
|
| metrics_service_->LogNeedForCleanShutdown();
|
| #endif // !defined(OS_ANDROID)
|
|
|
| - if (IsReportingEnabled())
|
| + if (enabled_state_provider_->IsReportingEnabled())
|
| metrics_service_->Start();
|
|
|
| #if defined(OS_LINUX)
|
| @@ -410,9 +427,5 @@ void CastMetricsServiceClient::Finalize() {
|
| metrics_service_->Stop();
|
| }
|
|
|
| -bool CastMetricsServiceClient::IsReportingEnabled() {
|
| - return pref_service_->GetBoolean(prefs::kOptInStats);
|
| -}
|
| -
|
| } // namespace metrics
|
| } // namespace chromecast
|
|
|