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

Unified Diff: chromecast/browser/metrics/cast_metrics_service_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: 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

Powered by Google App Engine
This is Rietveld 408576698