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

Side by Side Diff: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.mm

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 #include "ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client. h" 5 #include "ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client. h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "components/metrics/enabled_state_provider.h"
10 #include "components/metrics/metrics_state_manager.h" 11 #include "components/metrics/metrics_state_manager.h"
11 #include "components/prefs/pref_service.h" 12 #include "components/prefs/pref_service.h"
12 #include "components/rappor/rappor_service.h" 13 #include "components/rappor/rappor_service.h"
13 #include "components/variations/service/variations_service.h" 14 #include "components/variations/service/variations_service.h"
14 #include "ios/chrome/browser/application_context.h" 15 #include "ios/chrome/browser/application_context.h"
15 #include "ios/chrome/browser/chrome_switches.h" 16 #include "ios/chrome/browser/chrome_switches.h"
16 #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_accessor.h" 17 #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_accessor.h"
17 #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h" 18 #include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h"
18 #include "ios/chrome/browser/ui/browser_otr_state.h" 19 #include "ios/chrome/browser/ui/browser_otr_state.h"
19 #include "ios/chrome/browser/variations/ios_chrome_variations_service_client.h" 20 #include "ios/chrome/browser/variations/ios_chrome_variations_service_client.h"
20 #include "ios/chrome/browser/variations/ios_ui_string_overrider_factory.h" 21 #include "ios/chrome/browser/variations/ios_ui_string_overrider_factory.h"
21 #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" 22 #include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
22 23
23 namespace { 24 namespace {
24 25
25 void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) {} 26 void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) {}
26 27
27 std::unique_ptr<metrics::ClientInfo> LoadMetricsClientInfo() { 28 std::unique_ptr<metrics::ClientInfo> LoadMetricsClientInfo() {
28 return std::unique_ptr<metrics::ClientInfo>(); 29 return std::unique_ptr<metrics::ClientInfo>();
29 } 30 }
30 31
31 } // namespace 32 } // namespace
32 33
34 class IOSChromeMetricsServicesManagerClient::IOSChromeEnabledStateProvider
35 : public metrics::EnabledStateProvider {
36 public:
37 IOSChromeEnabledStateProvider() {}
38 ~IOSChromeEnabledStateProvider() override {}
39
40 bool IsConsentGiven() override {
41 return IOSChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
42 }
43
44 DISALLOW_COPY_AND_ASSIGN(IOSChromeEnabledStateProvider);
45 };
46
33 IOSChromeMetricsServicesManagerClient::IOSChromeMetricsServicesManagerClient( 47 IOSChromeMetricsServicesManagerClient::IOSChromeMetricsServicesManagerClient(
34 PrefService* local_state) 48 PrefService* local_state)
35 : local_state_(local_state) { 49 : enabled_state_provider_(new IOSChromeEnabledStateProvider()),
50 local_state_(local_state) {
36 DCHECK(local_state); 51 DCHECK(local_state);
37 } 52 }
38 53
39 IOSChromeMetricsServicesManagerClient:: 54 IOSChromeMetricsServicesManagerClient::
40 ~IOSChromeMetricsServicesManagerClient() = default; 55 ~IOSChromeMetricsServicesManagerClient() = default;
41 56
42 std::unique_ptr<rappor::RapporService> 57 std::unique_ptr<rappor::RapporService>
43 IOSChromeMetricsServicesManagerClient::CreateRapporService() { 58 IOSChromeMetricsServicesManagerClient::CreateRapporService() {
44 DCHECK(thread_checker_.CalledOnValidThread()); 59 DCHECK(thread_checker_.CalledOnValidThread());
45 return base::WrapUnique(new rappor::RapporService( 60 return base::WrapUnique(new rappor::RapporService(
(...skipping 25 matching lines...) Expand all
71 return GetApplicationContext()->GetSystemURLRequestContext(); 86 return GetApplicationContext()->GetSystemURLRequestContext();
72 } 87 }
73 88
74 bool IOSChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled( 89 bool IOSChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled(
75 const base::Closure& on_update_callback) { 90 const base::Closure& on_update_callback) {
76 return ios::GetChromeBrowserProvider()->IsSafeBrowsingEnabled( 91 return ios::GetChromeBrowserProvider()->IsSafeBrowsingEnabled(
77 on_update_callback); 92 on_update_callback);
78 } 93 }
79 94
80 bool IOSChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() { 95 bool IOSChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() {
81 return IOSChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled(); 96 return enabled_state_provider_->IsReportingEnabled();
82 } 97 }
83 98
84 bool IOSChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() { 99 bool IOSChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() {
85 const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); 100 const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
86 return cmdline->HasSwitch(switches::kIOSMetricsRecordingOnly); 101 return cmdline->HasSwitch(switches::kIOSMetricsRecordingOnly);
87 } 102 }
88 103
89 metrics::MetricsStateManager* 104 metrics::MetricsStateManager*
90 IOSChromeMetricsServicesManagerClient::GetMetricsStateManager() { 105 IOSChromeMetricsServicesManagerClient::GetMetricsStateManager() {
91 DCHECK(thread_checker_.CalledOnValidThread()); 106 DCHECK(thread_checker_.CalledOnValidThread());
92 if (!metrics_state_manager_) { 107 if (!metrics_state_manager_) {
93 metrics_state_manager_ = metrics::MetricsStateManager::Create( 108 metrics_state_manager_ = metrics::MetricsStateManager::Create(
94 local_state_, base::Bind(&IOSChromeMetricsServiceAccessor:: 109 local_state_, enabled_state_provider_.get(),
95 IsMetricsAndCrashReportingEnabled),
96 base::Bind(&PostStoreMetricsClientInfo), 110 base::Bind(&PostStoreMetricsClientInfo),
97 base::Bind(&LoadMetricsClientInfo)); 111 base::Bind(&LoadMetricsClientInfo));
98 } 112 }
99 return metrics_state_manager_.get(); 113 return metrics_state_manager_.get();
100 } 114 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698