Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Side by Side Diff: chromecast/metrics/cast_metrics_service_client.cc

Issue 587853002: Chromecast: adds Gpu/Network/Profiler metrics providers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chromecast/metrics/cast_metrics_service_client.h" 5 #include "chromecast/metrics/cast_metrics_service_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/i18n/rtl.h" 8 #include "base/i18n/rtl.h"
9 #include "chromecast/common/chromecast_config.h" 9 #include "chromecast/common/chromecast_config.h"
10 #include "chromecast/common/chromecast_switches.h" 10 #include "chromecast/common/chromecast_switches.h"
11 #include "chromecast/metrics/platform_metrics_providers.h" 11 #include "chromecast/metrics/platform_metrics_providers.h"
12 #include "components/metrics/client_info.h" 12 #include "components/metrics/client_info.h"
13 #include "components/metrics/gpu/gpu_metrics_provider.h"
13 #include "components/metrics/metrics_provider.h" 14 #include "components/metrics/metrics_provider.h"
14 #include "components/metrics/metrics_service.h" 15 #include "components/metrics/metrics_service.h"
15 #include "components/metrics/metrics_state_manager.h" 16 #include "components/metrics/metrics_state_manager.h"
16 #include "components/metrics/net/net_metrics_log_uploader.h" 17 #include "components/metrics/net/net_metrics_log_uploader.h"
18 #include "components/metrics/net/network_metrics_provider.h"
19 #include "components/metrics/profiler/profiler_metrics_provider.h"
17 20
18 namespace chromecast { 21 namespace chromecast {
19 namespace metrics { 22 namespace metrics {
20 23
21 namespace { 24 namespace {
22 25
23 void StoreClientInfo(const ::metrics::ClientInfo& client_info) { 26 void StoreClientInfo(const ::metrics::ClientInfo& client_info) {
24 } 27 }
25 28
26 scoped_ptr<::metrics::ClientInfo> LoadClientInfo() { 29 scoped_ptr<::metrics::ClientInfo> LoadClientInfo() {
27 return scoped_ptr<::metrics::ClientInfo>(); 30 return scoped_ptr<::metrics::ClientInfo>();
28 } 31 }
29 32
30 } // namespace 33 } // namespace
31 34
32 // static 35 // static
33 CastMetricsServiceClient* CastMetricsServiceClient::Create( 36 CastMetricsServiceClient* CastMetricsServiceClient::Create(
37 base::TaskRunner* io_task_runner,
34 PrefService* pref_service, 38 PrefService* pref_service,
35 net::URLRequestContextGetter* request_context) { 39 net::URLRequestContextGetter* request_context) {
36 return new CastMetricsServiceClient(pref_service, request_context); 40 return new CastMetricsServiceClient(io_task_runner,
41 pref_service,
42 request_context);
37 } 43 }
38 44
39 void CastMetricsServiceClient::SetMetricsClientId( 45 void CastMetricsServiceClient::SetMetricsClientId(
40 const std::string& client_id) { 46 const std::string& client_id) {
41 LOG(INFO) << "Metrics client ID set: " << client_id; 47 LOG(INFO) << "Metrics client ID set: " << client_id;
42 PlatformSetClientID(client_id); 48 PlatformSetClientID(client_id);
43 } 49 }
44 50
45 bool CastMetricsServiceClient::IsOffTheRecordSessionActive() { 51 bool CastMetricsServiceClient::IsOffTheRecordSessionActive() {
46 // Chromecast behaves as "off the record" w/r/t recording browsing state, 52 // Chromecast behaves as "off the record" w/r/t recording browsing state,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 106
101 void CastMetricsServiceClient::EnableMetricsService(bool enabled) { 107 void CastMetricsServiceClient::EnableMetricsService(bool enabled) {
102 if (enabled) { 108 if (enabled) {
103 metrics_service_->Start(); 109 metrics_service_->Start();
104 } else { 110 } else {
105 metrics_service_->Stop(); 111 metrics_service_->Stop();
106 } 112 }
107 } 113 }
108 114
109 CastMetricsServiceClient::CastMetricsServiceClient( 115 CastMetricsServiceClient::CastMetricsServiceClient(
116 base::TaskRunner* io_task_runner,
110 PrefService* pref_service, 117 PrefService* pref_service,
111 net::URLRequestContextGetter* request_context) 118 net::URLRequestContextGetter* request_context)
112 : metrics_state_manager_(::metrics::MetricsStateManager::Create( 119 : metrics_state_manager_(::metrics::MetricsStateManager::Create(
113 pref_service, 120 pref_service,
114 base::Bind(&CastMetricsServiceClient::IsReportingEnabled, 121 base::Bind(&CastMetricsServiceClient::IsReportingEnabled,
115 base::Unretained(this)), 122 base::Unretained(this)),
116 base::Bind(&StoreClientInfo), 123 base::Bind(&StoreClientInfo),
117 base::Bind(&LoadClientInfo))), 124 base::Bind(&LoadClientInfo))),
118 metrics_service_(new ::metrics::MetricsService( 125 metrics_service_(new ::metrics::MetricsService(
119 metrics_state_manager_.get(), 126 metrics_state_manager_.get(),
120 this, 127 this,
121 pref_service)), 128 pref_service)),
122 request_context_(request_context) { 129 request_context_(request_context) {
123 // Always create a client id as it may also be used by crash reporting, 130 // Always create a client id as it may also be used by crash reporting,
124 // (indirectly) included in feedback, and can be queried during setup. 131 // (indirectly) included in feedback, and can be queried during setup.
125 // For UMA and crash reporting, associated opt-in settings will control 132 // For UMA and crash reporting, associated opt-in settings will control
126 // sending reports as directed by the user. 133 // sending reports as directed by the user.
127 // For Setup (which also communicates the user's opt-in preferences), 134 // For Setup (which also communicates the user's opt-in preferences),
128 // report the client-id and expect that setup will handle the current opt-in 135 // report the client-id and expect that setup will handle the current opt-in
129 // value. 136 // value.
130 metrics_state_manager_->ForceClientIdCreation(); 137 metrics_state_manager_->ForceClientIdCreation();
131 138
132 // TODO(gunsch): Add the following: GPUMetricsProvider, 139 metrics_service_->RegisterMetricsProvider(
133 // NetworkMetricsProvider, ProfilerMetricsProvider. See: crbug/404791 140 scoped_ptr< ::metrics::MetricsProvider>(
141 new ::metrics::GPUMetricsProvider));
142 metrics_service_->RegisterMetricsProvider(
143 scoped_ptr< ::metrics::MetricsProvider>(
144 new NetworkMetricsProvider(io_task_runner)));
145 metrics_service_->RegisterMetricsProvider(
146 scoped_ptr< ::metrics::MetricsProvider>(
147 new ::metrics::ProfilerMetricsProvider));
134 RegisterPlatformMetricsProviders(metrics_service_.get()); 148 RegisterPlatformMetricsProviders(metrics_service_.get());
135 149
136 metrics_service_->InitializeMetricsRecordingState(); 150 metrics_service_->InitializeMetricsRecordingState();
137 151
138 if (IsReportingEnabled()) 152 if (IsReportingEnabled())
139 metrics_service_->Start(); 153 metrics_service_->Start();
140 } 154 }
141 155
142 CastMetricsServiceClient::~CastMetricsServiceClient() { 156 CastMetricsServiceClient::~CastMetricsServiceClient() {
143 } 157 }
144 158
145 bool CastMetricsServiceClient::IsReportingEnabled() { 159 bool CastMetricsServiceClient::IsReportingEnabled() {
146 return PlatformIsReportingEnabled(); 160 return PlatformIsReportingEnabled();
147 } 161 }
148 162
149 } // namespace metrics 163 } // namespace metrics
150 } // namespace chromecast 164 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/metrics/cast_metrics_service_client.h ('k') | chromecast/shell/browser/cast_browser_main_parts.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698