| Index: chrome/browser/metrics/chrome_metrics_service_client.cc
|
| diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| index 7d0e51a86d3d827a99ae55809847694fb3b9a475..22aeeb2a6024694d2176f0e0bf82c8a5a90d2f1f 100644
|
| --- a/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
|
| @@ -564,15 +564,22 @@ void ChromeMetricsServiceClient::Initialize() {
|
| metrics_service_.reset(
|
| new metrics::MetricsService(metrics_state_manager_, this, local_state));
|
|
|
| - if (base::FeatureList::IsEnabled(ukm::kUkmFeature))
|
| + RegisterMetricsServiceProviders();
|
| +
|
| + if (base::FeatureList::IsEnabled(ukm::kUkmFeature)) {
|
| ukm_service_.reset(new ukm::UkmService(local_state, this));
|
| + RegisterUKMProviders();
|
| + }
|
| +}
|
| +
|
| +void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
|
| + PrefService* local_state = g_browser_process->local_state();
|
|
|
| // Gets access to persistent metrics shared by sub-processes.
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(
|
| new SubprocessMetricsProvider()));
|
|
|
| - // Register metrics providers.
|
| #if BUILDFLAG(ENABLE_EXTENSIONS)
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(
|
| @@ -591,12 +598,15 @@ void ChromeMetricsServiceClient::Initialize() {
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(new OmniboxMetricsProvider(
|
| base::Bind(&chrome::IsIncognitoSessionActive))));
|
| +
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(
|
| new ChromeStabilityMetricsProvider(local_state)));
|
| +
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(
|
| new metrics::GPUMetricsProvider));
|
| +
|
| metrics_service_->RegisterMetricsProvider(
|
| std::unique_ptr<metrics::MetricsProvider>(
|
| new metrics::ScreenInfoMetricsProvider));
|
| @@ -712,6 +722,14 @@ void ChromeMetricsServiceClient::Initialize() {
|
| new CertificateReportingMetricsProvider()));
|
| }
|
|
|
| +void ChromeMetricsServiceClient::RegisterUKMProviders() {
|
| + ukm_service_->RegisterMetricsProvider(
|
| + base::MakeUnique<metrics::NetworkMetricsProvider>(
|
| + base::MakeUnique<metrics::NetworkQualityEstimatorProviderImpl>(
|
| + g_browser_process->io_thread()),
|
| + content::BrowserThread::GetBlockingPool()));
|
| +}
|
| +
|
| bool ChromeMetricsServiceClient::ShouldIncludeProfilerDataInLog() {
|
| // Upload profiler data at most once per session.
|
| if (has_uploaded_profiler_data_)
|
|
|