Commit 25deaa9e authored by gunsch's avatar gunsch Committed by Commit bot

Chromecast: adds Gpu/Network/Profiler metrics providers.

R=asvitkine@chromium.org,lcwu@chromium.org
BUG=400925

Review URL: https://codereview.chromium.org/587853002

Cr-Commit-Position: refs/heads/master@{#295810}
parent b316e927
......@@ -50,7 +50,9 @@
'cast_common',
'../components/components.gyp:component_metrics_proto',
'../components/components.gyp:metrics',
'../components/components.gyp:metrics_gpu',
'../components/components.gyp:metrics_net',
'../components/components.gyp:metrics_profiler',
],
'sources': [
'metrics/cast_metrics_prefs.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();
......
......@@ -14,6 +14,10 @@
class PrefService;
namespace base {
class TaskRunner;
}
namespace metrics {
class MetricsService;
class MetricsStateManager;
......@@ -31,6 +35,7 @@ class CastMetricsServiceClient : public ::metrics::MetricsServiceClient {
virtual ~CastMetricsServiceClient();
static CastMetricsServiceClient* Create(
base::TaskRunner* io_task_runner,
PrefService* pref_service,
net::URLRequestContextGetter* request_context);
......@@ -55,6 +60,7 @@ class CastMetricsServiceClient : public ::metrics::MetricsServiceClient {
private:
CastMetricsServiceClient(
base::TaskRunner* io_task_runner,
PrefService* pref_service,
net::URLRequestContextGetter* request_context);
......
......@@ -17,6 +17,7 @@
#include "chromecast/shell/browser/devtools/remote_debugging_server.h"
#include "chromecast/shell/browser/url_request_context_factory.h"
#include "chromecast/shell/browser/webui/webui_cast.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/content_switches.h"
#if defined(OS_ANDROID)
......@@ -93,6 +94,7 @@ void CastBrowserMainParts::PreMainMessageLoopRun() {
new CastBrowserContext(url_request_context_factory_));
cast_browser_process_->SetMetricsServiceClient(
metrics::CastMetricsServiceClient::Create(
content::BrowserThread::GetBlockingPool(),
ChromecastConfig::GetInstance()->pref_service(),
cast_browser_process_->browser_context()->GetRequestContext()));
cast_browser_process_->SetRemoteDebuggingServer(new RemoteDebuggingServer());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment