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

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

Issue 1958003003: Splitting the concept of UMA consent, and should UMA report. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « chromecast/browser/metrics/cast_metrics_service_client.h ('k') | components/metrics.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/memory/ptr_util.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "build/build_config.h" 14 #include "build/build_config.h"
15 #include "chromecast/base/cast_sys_info_util.h" 15 #include "chromecast/base/cast_sys_info_util.h"
16 #include "chromecast/base/chromecast_switches.h" 16 #include "chromecast/base/chromecast_switches.h"
17 #include "chromecast/base/path_utils.h" 17 #include "chromecast/base/path_utils.h"
18 #include "chromecast/base/pref_names.h" 18 #include "chromecast/base/pref_names.h"
19 #include "chromecast/base/version.h" 19 #include "chromecast/base/version.h"
20 #include "chromecast/browser/cast_browser_process.h" 20 #include "chromecast/browser/cast_browser_process.h"
21 #include "chromecast/browser/cast_content_browser_client.h" 21 #include "chromecast/browser/cast_content_browser_client.h"
22 #include "chromecast/browser/metrics/cast_stability_metrics_provider.h" 22 #include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
23 #include "chromecast/public/cast_sys_info.h" 23 #include "chromecast/public/cast_sys_info.h"
24 #include "components/metrics/client_info.h" 24 #include "components/metrics/client_info.h"
25 #include "components/metrics/enabled_state_provider.h"
25 #include "components/metrics/gpu/gpu_metrics_provider.h" 26 #include "components/metrics/gpu/gpu_metrics_provider.h"
26 #include "components/metrics/metrics_provider.h" 27 #include "components/metrics/metrics_provider.h"
27 #include "components/metrics/metrics_service.h" 28 #include "components/metrics/metrics_service.h"
28 #include "components/metrics/metrics_state_manager.h" 29 #include "components/metrics/metrics_state_manager.h"
29 #include "components/metrics/net/net_metrics_log_uploader.h" 30 #include "components/metrics/net/net_metrics_log_uploader.h"
30 #include "components/metrics/net/network_metrics_provider.h" 31 #include "components/metrics/net/network_metrics_provider.h"
31 #include "components/metrics/profiler/profiler_metrics_provider.h" 32 #include "components/metrics/profiler/profiler_metrics_provider.h"
32 #include "components/metrics/ui/screen_info_metrics_provider.h" 33 #include "components/metrics/ui/screen_info_metrics_provider.h"
33 #include "components/metrics/url_constants.h" 34 #include "components/metrics/url_constants.h"
34 #include "components/prefs/pref_registry_simple.h" 35 #include "components/prefs/pref_registry_simple.h"
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 return std::unique_ptr<::metrics::MetricsLogUploader>( 254 return std::unique_ptr<::metrics::MetricsLogUploader>(
254 new ::metrics::NetMetricsLogUploader(request_context_, uma_server_url, 255 new ::metrics::NetMetricsLogUploader(request_context_, uma_server_url,
255 ::metrics::kDefaultMetricsMimeType, 256 ::metrics::kDefaultMetricsMimeType,
256 on_upload_complete)); 257 on_upload_complete));
257 } 258 }
258 259
259 base::TimeDelta CastMetricsServiceClient::GetStandardUploadInterval() { 260 base::TimeDelta CastMetricsServiceClient::GetStandardUploadInterval() {
260 return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes); 261 return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes);
261 } 262 }
262 263
264 bool CastMetricsServiceClient::IsConsentGiven() {
265 return pref_service_->GetBoolean(prefs::kOptInStats);
266 }
267
263 void CastMetricsServiceClient::EnableMetricsService(bool enabled) { 268 void CastMetricsServiceClient::EnableMetricsService(bool enabled) {
264 if (!task_runner_->BelongsToCurrentThread()) { 269 if (!task_runner_->BelongsToCurrentThread()) {
265 task_runner_->PostTask( 270 task_runner_->PostTask(
266 FROM_HERE, base::Bind(&CastMetricsServiceClient::EnableMetricsService, 271 FROM_HERE, base::Bind(&CastMetricsServiceClient::EnableMetricsService,
267 base::Unretained(this), enabled)); 272 base::Unretained(this), enabled));
268 return; 273 return;
269 } 274 }
270 275
271 if (enabled) { 276 if (enabled) {
272 metrics_service_->Start(); 277 metrics_service_->Start();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 << "Force client ID must be set before client info is loaded."; 324 << "Force client ID must be set before client info is loaded.";
320 force_client_id_ = client_id; 325 force_client_id_ = client_id;
321 } 326 }
322 327
323 void CastMetricsServiceClient::Initialize(CastService* cast_service) { 328 void CastMetricsServiceClient::Initialize(CastService* cast_service) {
324 DCHECK(cast_service); 329 DCHECK(cast_service);
325 DCHECK(!cast_service_); 330 DCHECK(!cast_service_);
326 cast_service_ = cast_service; 331 cast_service_ = cast_service;
327 332
328 metrics_state_manager_ = ::metrics::MetricsStateManager::Create( 333 metrics_state_manager_ = ::metrics::MetricsStateManager::Create(
329 pref_service_, 334 pref_service_, this,
330 base::Bind(&CastMetricsServiceClient::IsReportingEnabled,
331 base::Unretained(this)),
332 base::Bind(&CastMetricsServiceClient::StoreClientInfo, 335 base::Bind(&CastMetricsServiceClient::StoreClientInfo,
333 base::Unretained(this)), 336 base::Unretained(this)),
334 base::Bind(&CastMetricsServiceClient::LoadClientInfo, 337 base::Bind(&CastMetricsServiceClient::LoadClientInfo,
335 base::Unretained(this))); 338 base::Unretained(this)));
336 metrics_service_.reset(new ::metrics::MetricsService( 339 metrics_service_.reset(new ::metrics::MetricsService(
337 metrics_state_manager_.get(), this, pref_service_)); 340 metrics_state_manager_.get(), this, pref_service_));
338 341
339 // Always create a client id as it may also be used by crash reporting, 342 // Always create a client id as it may also be used by crash reporting,
340 // (indirectly) included in feedback, and can be queried during setup. 343 // (indirectly) included in feedback, and can be queried during setup.
341 // For UMA and crash reporting, associated opt-in settings will control 344 // For UMA and crash reporting, associated opt-in settings will control
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 // Stop metrics service cleanly before destructing CastMetricsServiceClient. 406 // Stop metrics service cleanly before destructing CastMetricsServiceClient.
404 // The pointer will be deleted in StopAndDestroy(). 407 // The pointer will be deleted in StopAndDestroy().
405 external_metrics_->StopAndDestroy(); 408 external_metrics_->StopAndDestroy();
406 external_metrics_ = nullptr; 409 external_metrics_ = nullptr;
407 platform_metrics_->StopAndDestroy(); 410 platform_metrics_->StopAndDestroy();
408 platform_metrics_ = nullptr; 411 platform_metrics_ = nullptr;
409 #endif // defined(OS_LINUX) 412 #endif // defined(OS_LINUX)
410 metrics_service_->Stop(); 413 metrics_service_->Stop();
411 } 414 }
412 415
413 bool CastMetricsServiceClient::IsReportingEnabled() {
414 return pref_service_->GetBoolean(prefs::kOptInStats);
415 }
416
417 } // namespace metrics 416 } // namespace metrics
418 } // namespace chromecast 417 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/metrics/cast_metrics_service_client.h ('k') | components/metrics.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698