Index: components/metrics_services_manager/metrics_services_manager.cc |
diff --git a/components/metrics_services_manager/metrics_services_manager.cc b/components/metrics_services_manager/metrics_services_manager.cc |
index c64edc83f5c03b94c9ecf489f2ce41bdf65b7217..e1ec65096b3e21b946d8fdb24bb489d1c3b6fc71 100644 |
--- a/components/metrics_services_manager/metrics_services_manager.cc |
+++ b/components/metrics_services_manager/metrics_services_manager.cc |
@@ -12,6 +12,7 @@ |
#include "components/metrics/metrics_state_manager.h" |
#include "components/metrics_services_manager/metrics_services_manager_client.h" |
#include "components/rappor/rappor_service_impl.h" |
+#include "components/ukm/ukm_service.h" |
#include "components/variations/service/variations_service.h" |
namespace metrics_services_manager { |
@@ -43,6 +44,11 @@ rappor::RapporServiceImpl* MetricsServicesManager::GetRapporServiceImpl() { |
return rappor_service_.get(); |
} |
+ukm::UkmService* MetricsServicesManager::GetUkmService() { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ return GetMetricsServiceClient()->GetUkmService(); |
+} |
+ |
variations::VariationsService* MetricsServicesManager::GetVariationsService() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
if (!variations_service_) |
@@ -82,6 +88,7 @@ void MetricsServicesManager::UpdatePermissions(bool may_record, |
void MetricsServicesManager::UpdateRunningServices() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
metrics::MetricsService* metrics = GetMetricsService(); |
+ ukm::UkmService* ukm = GetUkmService(); |
if (client_->OnlyDoMetricsRecording()) { |
metrics->StartRecordingForTests(); |
@@ -96,10 +103,18 @@ void MetricsServicesManager::UpdateRunningServices() { |
if (!metrics->recording_active()) |
metrics->Start(); |
- if (may_upload_) |
+ if (may_upload_) { |
metrics->EnableReporting(); |
- else |
+#if !defined(OFFICIAL_BUILD) |
+ // TODO(holte): Make UKM check sync state instead of official build. |
+ if (ukm) |
+ ukm->EnableReporting(); |
+#endif |
+ } else { |
metrics->DisableReporting(); |
+ if (ukm) |
+ ukm->DisableReporting(); |
+ } |
} else { |
metrics->Stop(); |
} |