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

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

Issue 1875623002: Convert //chromecast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/browser/metrics/cast_metrics_service_client.h" 5 #include "chromecast/browser/metrics/cast_metrics_service_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/guid.h" 8 #include "base/guid.h"
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/memory/ptr_util.h"
11 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
12 #include "base/thread_task_runner_handle.h" 13 #include "base/thread_task_runner_handle.h"
13 #include "build/build_config.h" 14 #include "build/build_config.h"
14 #include "chromecast/base/cast_sys_info_util.h" 15 #include "chromecast/base/cast_sys_info_util.h"
15 #include "chromecast/base/chromecast_switches.h" 16 #include "chromecast/base/chromecast_switches.h"
16 #include "chromecast/base/path_utils.h" 17 #include "chromecast/base/path_utils.h"
17 #include "chromecast/base/pref_names.h" 18 #include "chromecast/base/pref_names.h"
18 #include "chromecast/base/version.h" 19 #include "chromecast/base/version.h"
19 #include "chromecast/browser/cast_browser_process.h" 20 #include "chromecast/browser/cast_browser_process.h"
20 #include "chromecast/browser/cast_content_browser_client.h" 21 #include "chromecast/browser/cast_content_browser_client.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } 81 }
81 82
82 // Any non-empty channel name is considered beta channel 83 // Any non-empty channel name is considered beta channel
83 return ::metrics::SystemProfileProto::CHANNEL_BETA; 84 return ::metrics::SystemProfileProto::CHANNEL_BETA;
84 } 85 }
85 #endif // !defined(OS_ANDROID) 86 #endif // !defined(OS_ANDROID)
86 87
87 } // namespace 88 } // namespace
88 89
89 // static 90 // static
90 scoped_ptr<CastMetricsServiceClient> CastMetricsServiceClient::Create( 91 std::unique_ptr<CastMetricsServiceClient> CastMetricsServiceClient::Create(
91 base::TaskRunner* io_task_runner, 92 base::TaskRunner* io_task_runner,
92 PrefService* pref_service, 93 PrefService* pref_service,
93 net::URLRequestContextGetter* request_context) { 94 net::URLRequestContextGetter* request_context) {
94 return make_scoped_ptr(new CastMetricsServiceClient( 95 return base::WrapUnique(new CastMetricsServiceClient(
95 io_task_runner, pref_service, request_context)); 96 io_task_runner, pref_service, request_context));
96 } 97 }
97 98
98 void CastMetricsServiceClient::RegisterPrefs(PrefRegistrySimple* registry) { 99 void CastMetricsServiceClient::RegisterPrefs(PrefRegistrySimple* registry) {
99 registry->RegisterStringPref(kMetricsOldClientID, std::string()); 100 registry->RegisterStringPref(kMetricsOldClientID, std::string());
100 } 101 }
101 102
102 ::metrics::MetricsService* CastMetricsServiceClient::GetMetricsService() { 103 ::metrics::MetricsService* CastMetricsServiceClient::GetMetricsService() {
103 return metrics_service_.get(); 104 return metrics_service_.get();
104 } 105 }
(...skipping 13 matching lines...) Expand all
118 } 119 }
119 120
120 void CastMetricsServiceClient::StoreClientInfo( 121 void CastMetricsServiceClient::StoreClientInfo(
121 const ::metrics::ClientInfo& client_info) { 122 const ::metrics::ClientInfo& client_info) {
122 const std::string& client_id = client_info.client_id; 123 const std::string& client_id = client_info.client_id;
123 DCHECK(client_id.empty() || base::IsValidGUID(client_id)); 124 DCHECK(client_id.empty() || base::IsValidGUID(client_id));
124 // backup client_id or reset to empty. 125 // backup client_id or reset to empty.
125 SetMetricsClientId(client_id); 126 SetMetricsClientId(client_id);
126 } 127 }
127 128
128 scoped_ptr< ::metrics::ClientInfo> CastMetricsServiceClient::LoadClientInfo() { 129 std::unique_ptr<::metrics::ClientInfo>
129 scoped_ptr< ::metrics::ClientInfo> client_info(new ::metrics::ClientInfo); 130 CastMetricsServiceClient::LoadClientInfo() {
131 std::unique_ptr<::metrics::ClientInfo> client_info(new ::metrics::ClientInfo);
130 client_info_loaded_ = true; 132 client_info_loaded_ = true;
131 133
132 // kMetricsIsNewClientID would be missing if either the device was just 134 // kMetricsIsNewClientID would be missing if either the device was just
133 // FDR'ed, or it is on pre-v1.2 build. 135 // FDR'ed, or it is on pre-v1.2 build.
134 if (!pref_service_->GetBoolean(prefs::kMetricsIsNewClientID)) { 136 if (!pref_service_->GetBoolean(prefs::kMetricsIsNewClientID)) {
135 // If the old client id exists, the device must be on pre-v1.2 build, 137 // If the old client id exists, the device must be on pre-v1.2 build,
136 // instead of just being FDR'ed. 138 // instead of just being FDR'ed.
137 if (!pref_service_->GetString(kMetricsOldClientID).empty()) { 139 if (!pref_service_->GetString(kMetricsOldClientID).empty()) {
138 // Force old client id to be regenerated. See b/9487011. 140 // Force old client id to be regenerated. See b/9487011.
139 client_info->client_id = base::GenerateGUID(); 141 client_info->client_id = base::GenerateGUID();
140 pref_service_->SetBoolean(prefs::kMetricsIsNewClientID, true); 142 pref_service_->SetBoolean(prefs::kMetricsIsNewClientID, true);
141 return client_info; 143 return client_info;
142 } 144 }
143 // else the device was just FDR'ed, pass through. 145 // else the device was just FDR'ed, pass through.
144 } 146 }
145 147
146 // Use "forced" client ID if available. 148 // Use "forced" client ID if available.
147 if (!force_client_id_.empty() && base::IsValidGUID(force_client_id_)) { 149 if (!force_client_id_.empty() && base::IsValidGUID(force_client_id_)) {
148 client_info->client_id = force_client_id_; 150 client_info->client_id = force_client_id_;
149 return client_info; 151 return client_info;
150 } 152 }
151 153
152 if (force_client_id_.empty()) { 154 if (force_client_id_.empty()) {
153 LOG(WARNING) << "Empty client id from platform," 155 LOG(WARNING) << "Empty client id from platform,"
154 << " assuming this is the first boot up of a new device."; 156 << " assuming this is the first boot up of a new device.";
155 } else { 157 } else {
156 LOG(ERROR) << "Invalid client id from platform: " << force_client_id_ 158 LOG(ERROR) << "Invalid client id from platform: " << force_client_id_
157 << " from platform."; 159 << " from platform.";
158 } 160 }
159 return scoped_ptr< ::metrics::ClientInfo>(); 161 return std::unique_ptr<::metrics::ClientInfo>();
160 } 162 }
161 163
162 bool CastMetricsServiceClient::IsOffTheRecordSessionActive() { 164 bool CastMetricsServiceClient::IsOffTheRecordSessionActive() {
163 // Chromecast behaves as "off the record" w/r/t recording browsing state, 165 // Chromecast behaves as "off the record" w/r/t recording browsing state,
164 // but this value is about not disabling metrics because of it. 166 // but this value is about not disabling metrics because of it.
165 return false; 167 return false;
166 } 168 }
167 169
168 int32_t CastMetricsServiceClient::GetProduct() { 170 int32_t CastMetricsServiceClient::GetProduct() {
169 // Chromecast currently uses the same product identifier as Chrome. 171 // Chromecast currently uses the same product identifier as Chrome.
170 return ::metrics::ChromeUserMetricsExtension::CHROME; 172 return ::metrics::ChromeUserMetricsExtension::CHROME;
171 } 173 }
172 174
173 std::string CastMetricsServiceClient::GetApplicationLocale() { 175 std::string CastMetricsServiceClient::GetApplicationLocale() {
174 return base::i18n::GetConfiguredLocale(); 176 return base::i18n::GetConfiguredLocale();
175 } 177 }
176 178
177 bool CastMetricsServiceClient::GetBrand(std::string* brand_code) { 179 bool CastMetricsServiceClient::GetBrand(std::string* brand_code) {
178 return false; 180 return false;
179 } 181 }
180 182
181 ::metrics::SystemProfileProto::Channel CastMetricsServiceClient::GetChannel() { 183 ::metrics::SystemProfileProto::Channel CastMetricsServiceClient::GetChannel() {
182 scoped_ptr<CastSysInfo> sys_info = CreateSysInfo(); 184 std::unique_ptr<CastSysInfo> sys_info = CreateSysInfo();
183 185
184 #if defined(OS_ANDROID) 186 #if defined(OS_ANDROID)
185 switch (sys_info->GetBuildType()) { 187 switch (sys_info->GetBuildType()) {
186 case CastSysInfo::BUILD_ENG: 188 case CastSysInfo::BUILD_ENG:
187 return ::metrics::SystemProfileProto::CHANNEL_UNKNOWN; 189 return ::metrics::SystemProfileProto::CHANNEL_UNKNOWN;
188 case CastSysInfo::BUILD_BETA: 190 case CastSysInfo::BUILD_BETA:
189 return ::metrics::SystemProfileProto::CHANNEL_BETA; 191 return ::metrics::SystemProfileProto::CHANNEL_BETA;
190 case CastSysInfo::BUILD_PRODUCTION: 192 case CastSysInfo::BUILD_PRODUCTION:
191 return ::metrics::SystemProfileProto::CHANNEL_STABLE; 193 return ::metrics::SystemProfileProto::CHANNEL_STABLE;
192 } 194 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 void CastMetricsServiceClient::InitializeSystemProfileMetrics( 233 void CastMetricsServiceClient::InitializeSystemProfileMetrics(
232 const base::Closure& done_callback) { 234 const base::Closure& done_callback) {
233 done_callback.Run(); 235 done_callback.Run();
234 } 236 }
235 237
236 void CastMetricsServiceClient::CollectFinalMetricsForLog( 238 void CastMetricsServiceClient::CollectFinalMetricsForLog(
237 const base::Closure& done_callback) { 239 const base::Closure& done_callback) {
238 done_callback.Run(); 240 done_callback.Run();
239 } 241 }
240 242
241 scoped_ptr< ::metrics::MetricsLogUploader> 243 std::unique_ptr<::metrics::MetricsLogUploader>
242 CastMetricsServiceClient::CreateUploader( 244 CastMetricsServiceClient::CreateUploader(
243 const base::Callback<void(int)>& on_upload_complete) { 245 const base::Callback<void(int)>& on_upload_complete) {
244 std::string uma_server_url(::metrics::kDefaultMetricsServerUrl); 246 std::string uma_server_url(::metrics::kDefaultMetricsServerUrl);
245 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 247 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
246 if (command_line->HasSwitch(switches::kOverrideMetricsUploadUrl)) { 248 if (command_line->HasSwitch(switches::kOverrideMetricsUploadUrl)) {
247 uma_server_url.assign( 249 uma_server_url.assign(
248 command_line->GetSwitchValueASCII(switches::kOverrideMetricsUploadUrl)); 250 command_line->GetSwitchValueASCII(switches::kOverrideMetricsUploadUrl));
249 } 251 }
250 DCHECK(!uma_server_url.empty()); 252 DCHECK(!uma_server_url.empty());
251 return scoped_ptr< ::metrics::MetricsLogUploader>( 253 return std::unique_ptr<::metrics::MetricsLogUploader>(
252 new ::metrics::NetMetricsLogUploader(request_context_, 254 new ::metrics::NetMetricsLogUploader(request_context_, uma_server_url,
253 uma_server_url,
254 ::metrics::kDefaultMetricsMimeType, 255 ::metrics::kDefaultMetricsMimeType,
255 on_upload_complete)); 256 on_upload_complete));
256 } 257 }
257 258
258 base::TimeDelta CastMetricsServiceClient::GetStandardUploadInterval() { 259 base::TimeDelta CastMetricsServiceClient::GetStandardUploadInterval() {
259 return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes); 260 return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes);
260 } 261 }
261 262
262 void CastMetricsServiceClient::EnableMetricsService(bool enabled) { 263 void CastMetricsServiceClient::EnableMetricsService(bool enabled) {
263 if (!task_runner_->BelongsToCurrentThread()) { 264 if (!task_runner_->BelongsToCurrentThread()) {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 // For UMA and crash reporting, associated opt-in settings will control 341 // For UMA and crash reporting, associated opt-in settings will control
341 // sending reports as directed by the user. 342 // sending reports as directed by the user.
342 // For Setup (which also communicates the user's opt-in preferences), 343 // For Setup (which also communicates the user's opt-in preferences),
343 // report the client-id and expect that setup will handle the current opt-in 344 // report the client-id and expect that setup will handle the current opt-in
344 // value. 345 // value.
345 metrics_state_manager_->ForceClientIdCreation(); 346 metrics_state_manager_->ForceClientIdCreation();
346 347
347 CastStabilityMetricsProvider* stability_provider = 348 CastStabilityMetricsProvider* stability_provider =
348 new CastStabilityMetricsProvider(metrics_service_.get()); 349 new CastStabilityMetricsProvider(metrics_service_.get());
349 metrics_service_->RegisterMetricsProvider( 350 metrics_service_->RegisterMetricsProvider(
350 scoped_ptr< ::metrics::MetricsProvider>(stability_provider)); 351 std::unique_ptr<::metrics::MetricsProvider>(stability_provider));
351 352
352 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 353 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
353 if (!command_line->HasSwitch(switches::kDisableGpu)) { 354 if (!command_line->HasSwitch(switches::kDisableGpu)) {
354 metrics_service_->RegisterMetricsProvider( 355 metrics_service_->RegisterMetricsProvider(
355 scoped_ptr< ::metrics::MetricsProvider>( 356 std::unique_ptr<::metrics::MetricsProvider>(
356 new ::metrics::GPUMetricsProvider)); 357 new ::metrics::GPUMetricsProvider));
357 358
358 // TODO(gfhuang): Does ChromeCast actually need metrics about screen info? 359 // TODO(gfhuang): Does ChromeCast actually need metrics about screen info?
359 // crbug.com/541577 360 // crbug.com/541577
360 metrics_service_->RegisterMetricsProvider( 361 metrics_service_->RegisterMetricsProvider(
361 scoped_ptr< ::metrics::MetricsProvider>( 362 std::unique_ptr<::metrics::MetricsProvider>(
362 new ::metrics::ScreenInfoMetricsProvider)); 363 new ::metrics::ScreenInfoMetricsProvider));
363 } 364 }
364 metrics_service_->RegisterMetricsProvider( 365 metrics_service_->RegisterMetricsProvider(
365 scoped_ptr< ::metrics::MetricsProvider>( 366 std::unique_ptr<::metrics::MetricsProvider>(
366 new ::metrics::NetworkMetricsProvider(io_task_runner_))); 367 new ::metrics::NetworkMetricsProvider(io_task_runner_)));
367 metrics_service_->RegisterMetricsProvider( 368 metrics_service_->RegisterMetricsProvider(
368 scoped_ptr< ::metrics::MetricsProvider>( 369 std::unique_ptr<::metrics::MetricsProvider>(
369 new ::metrics::ProfilerMetricsProvider)); 370 new ::metrics::ProfilerMetricsProvider));
370 shell::CastBrowserProcess::GetInstance()->browser_client()-> 371 shell::CastBrowserProcess::GetInstance()->browser_client()->
371 RegisterMetricsProviders(metrics_service_.get()); 372 RegisterMetricsProviders(metrics_service_.get());
372 373
373 metrics_service_->InitializeMetricsRecordingState(); 374 metrics_service_->InitializeMetricsRecordingState();
374 #if !defined(OS_ANDROID) 375 #if !defined(OS_ANDROID)
375 // Reset clean_shutdown bit after InitializeMetricsRecordingState(). 376 // Reset clean_shutdown bit after InitializeMetricsRecordingState().
376 metrics_service_->LogNeedForCleanShutdown(); 377 metrics_service_->LogNeedForCleanShutdown();
377 #endif // !defined(OS_ANDROID) 378 #endif // !defined(OS_ANDROID)
378 379
(...skipping 29 matching lines...) Expand all
408 #endif // defined(OS_LINUX) 409 #endif // defined(OS_LINUX)
409 metrics_service_->Stop(); 410 metrics_service_->Stop();
410 } 411 }
411 412
412 bool CastMetricsServiceClient::IsReportingEnabled() { 413 bool CastMetricsServiceClient::IsReportingEnabled() {
413 return pref_service_->GetBoolean(prefs::kOptInStats); 414 return pref_service_->GetBoolean(prefs::kOptInStats);
414 } 415 }
415 416
416 } // namespace metrics 417 } // namespace metrics
417 } // namespace chromecast 418 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/metrics/cast_metrics_service_client.h ('k') | chromecast/browser/pref_service_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698