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

Side by Side Diff: chrome/browser/metrics/chrome_metrics_services_manager_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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_ 5 #ifndef CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_
6 #define CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_ 6 #define CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/threading/thread_checker.h" 11 #include "base/threading/thread_checker.h"
12 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 12 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
13 #include "components/metrics_services_manager/metrics_services_manager_client.h" 13 #include "components/metrics_services_manager/metrics_services_manager_client.h"
14 14
15 class PrefService; 15 class PrefService;
16 16
17 namespace metrics { 17 namespace metrics {
18 class EnabledStateProvider;
18 class MetricsStateManager; 19 class MetricsStateManager;
19 } 20 }
20 21
21 // Provides a //chrome-specific implementation of MetricsServicesManagerClient. 22 // Provides a //chrome-specific implementation of MetricsServicesManagerClient.
22 class ChromeMetricsServicesManagerClient 23 class ChromeMetricsServicesManagerClient
23 : public metrics_services_manager::MetricsServicesManagerClient { 24 : public metrics_services_manager::MetricsServicesManagerClient {
24 public: 25 public:
25 explicit ChromeMetricsServicesManagerClient(PrefService* local_state); 26 explicit ChromeMetricsServicesManagerClient(PrefService* local_state);
26 ~ChromeMetricsServicesManagerClient() override; 27 ~ChromeMetricsServicesManagerClient() override;
27 28
28 private: 29 private:
30 // This is defined as a member class to get access to
31 // ChromeMetricsServiceAccessor through ChromeMetricsServicesManagerClient's
32 // friendship.
33 class ChromeEnabledStateProvider;
34
29 // metrics_services_manager::MetricsServicesManagerClient: 35 // metrics_services_manager::MetricsServicesManagerClient:
30 std::unique_ptr<rappor::RapporService> CreateRapporService() override; 36 std::unique_ptr<rappor::RapporService> CreateRapporService() override;
31 std::unique_ptr<variations::VariationsService> CreateVariationsService() 37 std::unique_ptr<variations::VariationsService> CreateVariationsService()
32 override; 38 override;
33 std::unique_ptr<metrics::MetricsServiceClient> CreateMetricsServiceClient() 39 std::unique_ptr<metrics::MetricsServiceClient> CreateMetricsServiceClient()
34 override; 40 override;
35 net::URLRequestContextGetter* GetURLRequestContext() override; 41 net::URLRequestContextGetter* GetURLRequestContext() override;
36 bool IsSafeBrowsingEnabled(const base::Closure& on_update_callback) override; 42 bool IsSafeBrowsingEnabled(const base::Closure& on_update_callback) override;
37 bool IsMetricsReportingEnabled() override; 43 bool IsMetricsReportingEnabled() override;
38 bool OnlyDoMetricsRecording() override; 44 bool OnlyDoMetricsRecording() override;
39 45
40 // Gets the MetricsStateManager, creating it if it has not already been 46 // Gets the MetricsStateManager, creating it if it has not already been
41 // created. 47 // created.
42 metrics::MetricsStateManager* GetMetricsStateManager(); 48 metrics::MetricsStateManager* GetMetricsStateManager();
43 49
44 // MetricsStateManager which is passed as a parameter to service constructors. 50 // MetricsStateManager which is passed as a parameter to service constructors.
45 std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_; 51 std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_;
46 52
53 // EnabledStateProvider to communicate if the client has consented to metrics
54 // reporting, and if it's enabled.
55 std::unique_ptr<metrics::EnabledStateProvider> enabled_state_provider_;
56
47 // Ensures that all functions are called from the same thread. 57 // Ensures that all functions are called from the same thread.
48 base::ThreadChecker thread_checker_; 58 base::ThreadChecker thread_checker_;
49 59
50 // Weak pointer to the local state prefs store. 60 // Weak pointer to the local state prefs store.
51 PrefService* local_state_; 61 PrefService* local_state_;
52 62
53 // Subscription to SafeBrowsing service state changes. 63 // Subscription to SafeBrowsing service state changes.
54 std::unique_ptr<safe_browsing::SafeBrowsingService::StateSubscription> 64 std::unique_ptr<safe_browsing::SafeBrowsingService::StateSubscription>
55 sb_state_subscription_; 65 sb_state_subscription_;
56 66
57 DISALLOW_COPY_AND_ASSIGN(ChromeMetricsServicesManagerClient); 67 DISALLOW_COPY_AND_ASSIGN(ChromeMetricsServicesManagerClient);
58 }; 68 };
59 69
60 #endif // CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_ 70 #endif // CHROME_BROWSER_METRICS_CHROME_METRICS_SERVICES_MANAGER_CLIENT_H_
OLDNEW
« no previous file with comments | « blimp/engine/app/blimp_metrics_service_client.cc ('k') | chrome/browser/metrics/chrome_metrics_services_manager_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698