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

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

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
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 #ifndef CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_ 5 #ifndef CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
6 #define CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_ 6 #define CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <string> 11 #include <string>
12 12
13 #include "base/macros.h" 13 #include "base/macros.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "build/build_config.h" 15 #include "build/build_config.h"
16 #include "components/metrics/enabled_state_provider.h"
16 #include "components/metrics/metrics_service_client.h" 17 #include "components/metrics/metrics_service_client.h"
17 18
18 class PrefRegistrySimple; 19 class PrefRegistrySimple;
19 class PrefService; 20 class PrefService;
20 21
21 namespace base { 22 namespace base {
22 class SingleThreadTaskRunner; 23 class SingleThreadTaskRunner;
23 class TaskRunner; 24 class TaskRunner;
24 } 25 }
25 26
26 namespace metrics { 27 namespace metrics {
27 struct ClientInfo; 28 struct ClientInfo;
28 class MetricsService; 29 class MetricsService;
29 class MetricsStateManager; 30 class MetricsStateManager;
30 } // namespace metrics 31 } // namespace metrics
31 32
32 namespace net { 33 namespace net {
33 class URLRequestContextGetter; 34 class URLRequestContextGetter;
34 } // namespace net 35 } // namespace net
35 36
36 namespace chromecast { 37 namespace chromecast {
37 38
38 class CastService; 39 class CastService;
39 40
40 namespace metrics { 41 namespace metrics {
41 42
42 class ExternalMetrics; 43 class ExternalMetrics;
43 44
44 class CastMetricsServiceClient : public ::metrics::MetricsServiceClient { 45 class CastMetricsServiceClient : public ::metrics::MetricsServiceClient,
46 public ::metrics::EnabledStateProvider {
45 public: 47 public:
46 ~CastMetricsServiceClient() override; 48 ~CastMetricsServiceClient() override;
47 49
48 static std::unique_ptr<CastMetricsServiceClient> Create( 50 static std::unique_ptr<CastMetricsServiceClient> Create(
49 base::TaskRunner* io_task_runner, 51 base::TaskRunner* io_task_runner,
50 PrefService* pref_service, 52 PrefService* pref_service,
51 net::URLRequestContextGetter* request_context); 53 net::URLRequestContextGetter* request_context);
52 static void RegisterPrefs(PrefRegistrySimple* registry); 54 static void RegisterPrefs(PrefRegistrySimple* registry);
53 55
54 // Use |client_id| when starting MetricsService instead of generating a new 56 // Use |client_id| when starting MetricsService instead of generating a new
(...skipping 20 matching lines...) Expand all
75 ::metrics::SystemProfileProto::Channel GetChannel() override; 77 ::metrics::SystemProfileProto::Channel GetChannel() override;
76 std::string GetVersionString() override; 78 std::string GetVersionString() override;
77 void OnLogUploadComplete() override; 79 void OnLogUploadComplete() override;
78 void InitializeSystemProfileMetrics( 80 void InitializeSystemProfileMetrics(
79 const base::Closure& done_callback) override; 81 const base::Closure& done_callback) override;
80 void CollectFinalMetricsForLog(const base::Closure& done_callback) override; 82 void CollectFinalMetricsForLog(const base::Closure& done_callback) override;
81 std::unique_ptr<::metrics::MetricsLogUploader> CreateUploader( 83 std::unique_ptr<::metrics::MetricsLogUploader> CreateUploader(
82 const base::Callback<void(int)>& on_upload_complete) override; 84 const base::Callback<void(int)>& on_upload_complete) override;
83 base::TimeDelta GetStandardUploadInterval() override; 85 base::TimeDelta GetStandardUploadInterval() override;
84 86
87 // ::metrics::EnabledStateProvider implementation:
Alexei Svitkine (slow) 2016/05/11 18:37:26 Nit: Ditto.
jwd 2016/05/11 19:17:04 Done.
88 bool IsConsentGiven() override;
89
85 // Starts/stops the metrics service. 90 // Starts/stops the metrics service.
86 void EnableMetricsService(bool enabled); 91 void EnableMetricsService(bool enabled);
87 92
88 std::string client_id() const { return client_id_; } 93 std::string client_id() const { return client_id_; }
89 94
90 private: 95 private:
91 CastMetricsServiceClient(base::TaskRunner* io_task_runner, 96 CastMetricsServiceClient(base::TaskRunner* io_task_runner,
92 PrefService* pref_service, 97 PrefService* pref_service,
93 net::URLRequestContextGetter* request_context); 98 net::URLRequestContextGetter* request_context);
94 99
95 // Returns whether or not metrics reporting is enabled.
96 bool IsReportingEnabled();
97
98 std::unique_ptr<::metrics::ClientInfo> LoadClientInfo(); 100 std::unique_ptr<::metrics::ClientInfo> LoadClientInfo();
99 void StoreClientInfo(const ::metrics::ClientInfo& client_info); 101 void StoreClientInfo(const ::metrics::ClientInfo& client_info);
100 102
101 base::TaskRunner* const io_task_runner_; 103 base::TaskRunner* const io_task_runner_;
102 PrefService* const pref_service_; 104 PrefService* const pref_service_;
103 CastService* cast_service_; 105 CastService* cast_service_;
104 std::string client_id_; 106 std::string client_id_;
105 std::string force_client_id_; 107 std::string force_client_id_;
106 bool client_info_loaded_; 108 bool client_info_loaded_;
107 109
108 #if defined(OS_LINUX) 110 #if defined(OS_LINUX)
109 ExternalMetrics* external_metrics_; 111 ExternalMetrics* external_metrics_;
110 ExternalMetrics* platform_metrics_; 112 ExternalMetrics* platform_metrics_;
111 #endif // defined(OS_LINUX) 113 #endif // defined(OS_LINUX)
112 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 114 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
113 std::unique_ptr<::metrics::MetricsStateManager> metrics_state_manager_; 115 std::unique_ptr<::metrics::MetricsStateManager> metrics_state_manager_;
114 std::unique_ptr<::metrics::MetricsService> metrics_service_; 116 std::unique_ptr<::metrics::MetricsService> metrics_service_;
117 std::unique_ptr<::metrics::EnabledStateProvider> enabled_state_provider_;
115 net::URLRequestContextGetter* const request_context_; 118 net::URLRequestContextGetter* const request_context_;
116 119
117 DISALLOW_COPY_AND_ASSIGN(CastMetricsServiceClient); 120 DISALLOW_COPY_AND_ASSIGN(CastMetricsServiceClient);
118 }; 121 };
119 122
120 } // namespace metrics 123 } // namespace metrics
121 } // namespace chromecast 124 } // namespace chromecast
122 125
123 #endif // CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_ 126 #endif // CHROMECAST_BROWSER_METRICS_CAST_METRICS_SERVICE_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698