summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgunsch <gunsch@chromium.org>2014-09-19 16:34:49 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-19 23:35:19 +0000
commit25deaa9ef9f22d2da25872905bb25434e63d49e3 (patch)
treeccabdf815385354aea097de0424554c968a5fd6b
parentb316e9276bb4469277850272e3b2057465b063a1 (diff)
downloadchromium_src-25deaa9ef9f22d2da25872905bb25434e63d49e3.zip
chromium_src-25deaa9ef9f22d2da25872905bb25434e63d49e3.tar.gz
chromium_src-25deaa9ef9f22d2da25872905bb25434e63d49e3.tar.bz2
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}
-rw-r--r--chromecast/chromecast.gyp2
-rw-r--r--chromecast/metrics/cast_metrics_service_client.cc20
-rw-r--r--chromecast/metrics/cast_metrics_service_client.h6
-rw-r--r--chromecast/shell/browser/cast_browser_main_parts.cc2
4 files changed, 27 insertions, 3 deletions
diff --git a/chromecast/chromecast.gyp b/chromecast/chromecast.gyp
index 90c3c87..6acf231 100644
--- a/chromecast/chromecast.gyp
+++ b/chromecast/chromecast.gyp
@@ -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',
diff --git a/chromecast/metrics/cast_metrics_service_client.cc b/chromecast/metrics/cast_metrics_service_client.cc
index 6409aba..637cd40 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();
diff --git a/chromecast/metrics/cast_metrics_service_client.h b/chromecast/metrics/cast_metrics_service_client.h
index 24751bb..fc55aea 100644
--- a/chromecast/metrics/cast_metrics_service_client.h
+++ b/chromecast/metrics/cast_metrics_service_client.h
@@ -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);
diff --git a/chromecast/shell/browser/cast_browser_main_parts.cc b/chromecast/shell/browser/cast_browser_main_parts.cc
index c7f1902..dcb1b21 100644
--- a/chromecast/shell/browser/cast_browser_main_parts.cc
+++ b/chromecast/shell/browser/cast_browser_main_parts.cc
@@ -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());