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

Side by Side Diff: android_webview/native/aw_metrics_service_client_impl.cc

Issue 2778203003: WebView: Create UMA uploader (Closed)
Patch Set: unimplemnet RegisterAwMetricsLogUploader Created 3 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
« no previous file with comments | « android_webview/native/aw_metrics_service_client_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "android_webview/native/aw_metrics_service_client_impl.h" 5 #include "android_webview/native/aw_metrics_service_client_impl.h"
6 6
7 #include "android_webview/common/aw_version_info_values.h" 7 #include "android_webview/common/aw_version_info_values.h"
8 #include "android_webview/jni/AwMetricsServiceClient_jni.h" 8 #include "android_webview/jni/AwMetricsServiceClient_jni.h"
9 #include "android_webview/native/aw_metrics_log_uploader.h"
10 #include "base/android/build_info.h"
9 #include "base/bind.h" 11 #include "base/bind.h"
10 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
11 #include "base/guid.h" 13 #include "base/guid.h"
12 #include "base/i18n/rtl.h" 14 #include "base/i18n/rtl.h"
13 #include "base/threading/sequenced_worker_pool.h" 15 #include "base/threading/sequenced_worker_pool.h"
14 #include "components/metrics/call_stack_profile_metrics_provider.h" 16 #include "components/metrics/call_stack_profile_metrics_provider.h"
15 #include "components/metrics/enabled_state_provider.h" 17 #include "components/metrics/enabled_state_provider.h"
16 #include "components/metrics/gpu/gpu_metrics_provider.h" 18 #include "components/metrics/gpu/gpu_metrics_provider.h"
17 #include "components/metrics/metrics_log_uploader.h" 19 #include "components/metrics/metrics_log_uploader.h"
18 #include "components/metrics/metrics_pref_names.h" 20 #include "components/metrics/metrics_pref_names.h"
19 #include "components/metrics/metrics_service.h" 21 #include "components/metrics/metrics_service.h"
20 #include "components/metrics/metrics_state_manager.h" 22 #include "components/metrics/metrics_state_manager.h"
21 #include "components/metrics/net/net_metrics_log_uploader.h"
22 #include "components/metrics/profiler/profiler_metrics_provider.h" 23 #include "components/metrics/profiler/profiler_metrics_provider.h"
23 #include "components/metrics/ui/screen_info_metrics_provider.h" 24 #include "components/metrics/ui/screen_info_metrics_provider.h"
24 #include "components/metrics/url_constants.h" 25 #include "components/metrics/url_constants.h"
25 #include "components/prefs/pref_service.h" 26 #include "components/prefs/pref_service.h"
26 #include "content/public/browser/browser_thread.h" 27 #include "content/public/browser/browser_thread.h"
27 28
28 namespace android_webview { 29 namespace android_webview {
29 30
30 base::LazyInstance<AwMetricsServiceClientImpl>::Leaky g_lazy_instance_; 31 base::LazyInstance<AwMetricsServiceClientImpl>::Leaky g_lazy_instance_;
31 32
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 140 }
140 141
141 bool AwMetricsServiceClientImpl::IsConsentGiven() { 142 bool AwMetricsServiceClientImpl::IsConsentGiven() {
142 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 143 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
143 return is_enabled_; 144 return is_enabled_;
144 } 145 }
145 146
146 void AwMetricsServiceClientImpl::SetMetricsEnabled(bool enabled) { 147 void AwMetricsServiceClientImpl::SetMetricsEnabled(bool enabled) {
147 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 148 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
148 149
150 // For now, UMA is only enabled on future versions.
151 if (base::android::BuildInfo::GetInstance()->sdk_int() <=
152 base::android::SDK_VERSION_NOUGAT) {
153 return;
154 }
155
149 if (is_enabled_ != enabled) { 156 if (is_enabled_ != enabled) {
150 if (enabled) { 157 if (enabled) {
151 // TODO(paulmiller): Actually enable metrics when the server-side is ready 158 metrics_service_->Start();
152 //metrics_service_->Start();
153 } else { 159 } else {
154 metrics_service_->Stop(); 160 metrics_service_->Stop();
155 } 161 }
156 is_enabled_ = enabled; 162 is_enabled_ = enabled;
157 } 163 }
158 } 164 }
159 165
160 metrics::MetricsService* AwMetricsServiceClientImpl::GetMetricsService() { 166 metrics::MetricsService* AwMetricsServiceClientImpl::GetMetricsService() {
161 return metrics_service_.get(); 167 return metrics_service_.get();
162 } 168 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 const base::Closure& done_callback) { 206 const base::Closure& done_callback) {
201 done_callback.Run(); 207 done_callback.Run();
202 } 208 }
203 209
204 std::unique_ptr<metrics::MetricsLogUploader> 210 std::unique_ptr<metrics::MetricsLogUploader>
205 AwMetricsServiceClientImpl::CreateUploader( 211 AwMetricsServiceClientImpl::CreateUploader(
206 base::StringPiece server_url, 212 base::StringPiece server_url,
207 base::StringPiece mime_type, 213 base::StringPiece mime_type,
208 metrics::MetricsLogUploader::MetricServiceType service_type, 214 metrics::MetricsLogUploader::MetricServiceType service_type,
209 const base::Callback<void(int)>& on_upload_complete) { 215 const base::Callback<void(int)>& on_upload_complete) {
216 // |server_url| and |mime_type| are unused because WebView uses the platform
217 // logging mechanism instead of the normal UMA server.
210 return std::unique_ptr<::metrics::MetricsLogUploader>( 218 return std::unique_ptr<::metrics::MetricsLogUploader>(
211 new metrics::NetMetricsLogUploader(request_context_, server_url, 219 new AwMetricsLogUploader(on_upload_complete));
212 mime_type, service_type,
213 on_upload_complete));
214 } 220 }
215 221
216 base::TimeDelta AwMetricsServiceClientImpl::GetStandardUploadInterval() { 222 base::TimeDelta AwMetricsServiceClientImpl::GetStandardUploadInterval() {
223 // The platform logging mechanism is responsible for upload frequency; this
224 // just specifies how frequently to provide logs to the platform.
217 return base::TimeDelta::FromMinutes(kUploadIntervalMinutes); 225 return base::TimeDelta::FromMinutes(kUploadIntervalMinutes);
218 } 226 }
219 227
220 AwMetricsServiceClientImpl::AwMetricsServiceClientImpl() 228 AwMetricsServiceClientImpl::AwMetricsServiceClientImpl()
221 : is_enabled_(false), 229 : is_enabled_(false),
222 pref_service_(nullptr), 230 pref_service_(nullptr),
223 request_context_(nullptr) {} 231 request_context_(nullptr) {}
224 232
225 AwMetricsServiceClientImpl::~AwMetricsServiceClientImpl() {} 233 AwMetricsServiceClientImpl::~AwMetricsServiceClientImpl() {}
226 234
227 // static 235 // static
228 void SetMetricsEnabled( 236 void SetMetricsEnabled(
229 JNIEnv* env, 237 JNIEnv* env,
230 const base::android::JavaParamRef<jclass>& jcaller, 238 const base::android::JavaParamRef<jclass>& jcaller,
231 jboolean enabled) { 239 jboolean enabled) {
232 g_lazy_instance_.Pointer()->SetMetricsEnabled(enabled); 240 g_lazy_instance_.Pointer()->SetMetricsEnabled(enabled);
233 } 241 }
234 242
235 bool RegisterAwMetricsServiceClient(JNIEnv* env) { 243 bool RegisterAwMetricsServiceClient(JNIEnv* env) {
236 return RegisterNativesImpl(env); 244 return RegisterNativesImpl(env);
237 } 245 }
238 246
239 } // namespace android_webview 247 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/native/aw_metrics_service_client_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698