Index: chromecast/metrics/cast_metrics_service_client.cc |
diff --git a/chromecast/metrics/cast_metrics_service_client.cc b/chromecast/metrics/cast_metrics_service_client.cc |
index 6409aba957e5cd24c09c2dcb710bdcd0ab630229..637cd400b864e484b3300b51d33eb69ce8076ce2 100644 |
--- a/chromecast/metrics/cast_metrics_service_client.cc |
+++ b/chromecast/metrics/cast_metrics_service_client.cc |
@@ -10,10 +10,13 @@ |
#include "chromecast/common/chromecast_switches.h" |
#include "chromecast/metrics/platform_metrics_providers.h" |
#include "components/metrics/client_info.h" |
+#include "components/metrics/gpu/gpu_metrics_provider.h" |
#include "components/metrics/metrics_provider.h" |
#include "components/metrics/metrics_service.h" |
#include "components/metrics/metrics_state_manager.h" |
#include "components/metrics/net/net_metrics_log_uploader.h" |
+#include "components/metrics/net/network_metrics_provider.h" |
+#include "components/metrics/profiler/profiler_metrics_provider.h" |
namespace chromecast { |
namespace metrics { |
@@ -31,9 +34,12 @@ scoped_ptr<::metrics::ClientInfo> LoadClientInfo() { |
// static |
CastMetricsServiceClient* CastMetricsServiceClient::Create( |
+ base::TaskRunner* io_task_runner, |
PrefService* pref_service, |
net::URLRequestContextGetter* request_context) { |
- return new CastMetricsServiceClient(pref_service, request_context); |
+ return new CastMetricsServiceClient(io_task_runner, |
+ pref_service, |
+ request_context); |
} |
void CastMetricsServiceClient::SetMetricsClientId( |
@@ -107,6 +113,7 @@ void CastMetricsServiceClient::EnableMetricsService(bool enabled) { |
} |
CastMetricsServiceClient::CastMetricsServiceClient( |
+ base::TaskRunner* io_task_runner, |
PrefService* pref_service, |
net::URLRequestContextGetter* request_context) |
: metrics_state_manager_(::metrics::MetricsStateManager::Create( |
@@ -129,8 +136,15 @@ CastMetricsServiceClient::CastMetricsServiceClient( |
// value. |
metrics_state_manager_->ForceClientIdCreation(); |
- // TODO(gunsch): Add the following: GPUMetricsProvider, |
- // NetworkMetricsProvider, ProfilerMetricsProvider. See: crbug/404791 |
+ metrics_service_->RegisterMetricsProvider( |
+ scoped_ptr< ::metrics::MetricsProvider>( |
+ new ::metrics::GPUMetricsProvider)); |
+ metrics_service_->RegisterMetricsProvider( |
+ scoped_ptr< ::metrics::MetricsProvider>( |
+ new NetworkMetricsProvider(io_task_runner))); |
+ metrics_service_->RegisterMetricsProvider( |
+ scoped_ptr< ::metrics::MetricsProvider>( |
+ new ::metrics::ProfilerMetricsProvider)); |
RegisterPlatformMetricsProviders(metrics_service_.get()); |
metrics_service_->InitializeMetricsRecordingState(); |