| 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 |