OLD | NEW |
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/i18n/rtl.h" | 7 #include "base/i18n/rtl.h" |
8 #include "chromecast/common/chromecast_config.h" | 8 #include "chromecast/common/chromecast_config.h" |
9 #include "chromecast/metrics/platform_metrics_providers.h" | 9 #include "chromecast/metrics/platform_metrics_providers.h" |
| 10 #include "components/metrics/client_info.h" |
10 #include "components/metrics/metrics_provider.h" | 11 #include "components/metrics/metrics_provider.h" |
11 #include "components/metrics/metrics_service.h" | 12 #include "components/metrics/metrics_service.h" |
12 #include "components/metrics/metrics_state_manager.h" | 13 #include "components/metrics/metrics_state_manager.h" |
13 #include "components/metrics/net/net_metrics_log_uploader.h" | 14 #include "components/metrics/net/net_metrics_log_uploader.h" |
14 | 15 |
15 namespace chromecast { | 16 namespace chromecast { |
16 namespace metrics { | 17 namespace metrics { |
17 | 18 |
| 19 namespace { |
| 20 |
| 21 void StoreClientInfo(const ::metrics::ClientInfo& client_info) { |
| 22 } |
| 23 |
| 24 scoped_ptr<::metrics::ClientInfo> LoadClientInfo() { |
| 25 return scoped_ptr<::metrics::ClientInfo>(); |
| 26 } |
| 27 |
| 28 } // namespace |
| 29 |
18 // static | 30 // static |
19 CastMetricsServiceClient* CastMetricsServiceClient::Create( | 31 CastMetricsServiceClient* CastMetricsServiceClient::Create( |
20 PrefService* pref_service, | 32 PrefService* pref_service, |
21 net::URLRequestContextGetter* request_context) { | 33 net::URLRequestContextGetter* request_context) { |
22 return new CastMetricsServiceClient(pref_service, request_context); | 34 return new CastMetricsServiceClient(pref_service, request_context); |
23 } | 35 } |
24 | 36 |
25 void CastMetricsServiceClient::SetMetricsClientId( | 37 void CastMetricsServiceClient::SetMetricsClientId( |
26 const std::string& client_id) { | 38 const std::string& client_id) { |
27 LOG(INFO) << "Metrics client ID set: " << client_id; | 39 LOG(INFO) << "Metrics client ID set: " << client_id; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 } | 97 } |
86 } | 98 } |
87 | 99 |
88 CastMetricsServiceClient::CastMetricsServiceClient( | 100 CastMetricsServiceClient::CastMetricsServiceClient( |
89 PrefService* pref_service, | 101 PrefService* pref_service, |
90 net::URLRequestContextGetter* request_context) | 102 net::URLRequestContextGetter* request_context) |
91 : metrics_state_manager_(::metrics::MetricsStateManager::Create( | 103 : metrics_state_manager_(::metrics::MetricsStateManager::Create( |
92 pref_service, | 104 pref_service, |
93 base::Bind(&CastMetricsServiceClient::IsReportingEnabled, | 105 base::Bind(&CastMetricsServiceClient::IsReportingEnabled, |
94 base::Unretained(this)), | 106 base::Unretained(this)), |
95 ::metrics::MetricsStateManager::StoreClientInfoCallback(), | 107 base::Bind(&StoreClientInfo), |
96 ::metrics::MetricsStateManager::LoadClientInfoCallback())), | 108 base::Bind(&LoadClientInfo))), |
97 metrics_service_(new ::metrics::MetricsService( | 109 metrics_service_(new ::metrics::MetricsService( |
98 metrics_state_manager_.get(), | 110 metrics_state_manager_.get(), |
99 this, | 111 this, |
100 ChromecastConfig::GetInstance()->pref_service())), | 112 pref_service)), |
101 request_context_(request_context) { | 113 request_context_(request_context) { |
102 // Always create a client id as it may also be used by crash reporting, | 114 // Always create a client id as it may also be used by crash reporting, |
103 // (indirectly) included in feedback, and can be queried during setup. | 115 // (indirectly) included in feedback, and can be queried during setup. |
104 // For UMA and crash reporting, associated opt-in settings will control | 116 // For UMA and crash reporting, associated opt-in settings will control |
105 // sending reports as directed by the user. | 117 // sending reports as directed by the user. |
106 // For Setup (which also communicates the user's opt-in preferences), | 118 // For Setup (which also communicates the user's opt-in preferences), |
107 // report the client-id and expect that setup will handle the current opt-in | 119 // report the client-id and expect that setup will handle the current opt-in |
108 // value. | 120 // value. |
109 metrics_state_manager_->ForceClientIdCreation(); | 121 metrics_state_manager_->ForceClientIdCreation(); |
110 | 122 |
111 // TODO(gunsch): Add the following: GPUMetricsProvider, | 123 // TODO(gunsch): Add the following: GPUMetricsProvider, |
112 // NetworkMetricsProvider, ProfilerMetricsProvider. See: crbug/404791 | 124 // NetworkMetricsProvider, ProfilerMetricsProvider. See: crbug/404791 |
113 RegisterPlatformMetricsProviders(metrics_service_.get()); | 125 RegisterPlatformMetricsProviders(metrics_service_.get()); |
114 | 126 |
115 metrics_service_->InitializeMetricsRecordingState(); | 127 metrics_service_->InitializeMetricsRecordingState(); |
116 | 128 |
117 if (IsReportingEnabled()) | 129 if (IsReportingEnabled()) |
118 metrics_service_->Start(); | 130 metrics_service_->Start(); |
119 } | 131 } |
120 | 132 |
121 CastMetricsServiceClient::~CastMetricsServiceClient() { | 133 CastMetricsServiceClient::~CastMetricsServiceClient() { |
122 } | 134 } |
123 | 135 |
124 bool CastMetricsServiceClient::IsReportingEnabled() { | 136 bool CastMetricsServiceClient::IsReportingEnabled() { |
125 return PlatformIsReportingEnabled(); | 137 return PlatformIsReportingEnabled(); |
126 } | 138 } |
127 | 139 |
128 } // namespace metrics | 140 } // namespace metrics |
129 } // namespace chromecast | 141 } // namespace chromecast |
OLD | NEW |