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

Side by Side Diff: android_webview/java/src/org/chromium/android_webview/crash/MinidumpUploadJobService.java

Issue 2628863004: [Android WebView] Ensure we have user consent before uploading minidumps (Closed)
Patch Set: Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 package org.chromium.android_webview.crash; 4 package org.chromium.android_webview.crash;
5 5
6 import android.annotation.TargetApi; 6 import android.annotation.TargetApi;
7 import android.app.job.JobParameters; 7 import android.app.job.JobParameters;
8 import android.app.job.JobService; 8 import android.app.job.JobService;
9 import android.os.Build; 9 import android.os.Build;
10 10
11 import org.chromium.android_webview.PlatformServiceBridge;
11 import org.chromium.base.ContextUtils; 12 import org.chromium.base.ContextUtils;
12 13
13 /** 14 /**
14 * Class that interacts with the Android JobScheduler to upload Minidumps at app ropriate times. 15 * Class that interacts with the Android JobScheduler to upload Minidumps at app ropriate times.
15 */ 16 */
16 @TargetApi(Build.VERSION_CODES.LOLLIPOP) 17 @TargetApi(Build.VERSION_CODES.LOLLIPOP)
17 // OBS: This class needs to be public to be started from android.app.ActivityThr ead. 18 // OBS: This class needs to be public to be started from android.app.ActivityThr ead.
18 public class MinidumpUploadJobService extends JobService { 19 public class MinidumpUploadJobService extends JobService {
19 Object mRunningLock = new Object(); 20 Object mRunningLock = new Object();
20 boolean mRunningJob = false; 21 boolean mRunningJob = false;
21 MinidumpUploader mMinidumpUploader; 22 MinidumpUploader mMinidumpUploader;
22 23
23 @Override 24 @Override
24 public void onCreate() { 25 public void onCreate() {
25 super.onCreate(); 26 super.onCreate();
26 SynchronizedWebViewCommandLine.initOnSeparateThread(); 27 SynchronizedWebViewCommandLine.initOnSeparateThread();
27 } 28 }
28 29
29 @Override 30 @Override
30 public boolean onStartJob(JobParameters params) { 31 public boolean onStartJob(JobParameters params) {
31 // Ensure we can use ContextUtils later on (from minidump_uploader compo nent). 32 // Ensure we can use ContextUtils later on (from minidump_uploader compo nent).
32 ContextUtils.initApplicationContext(this.getApplicationContext()); 33 ContextUtils.initApplicationContext(this.getApplicationContext());
33 34
34 // Ensure we only run one job at a time. 35 // Ensure we only run one job at a time.
35 synchronized (mRunningLock) { 36 synchronized (mRunningLock) {
36 assert !mRunningJob; 37 assert !mRunningJob;
37 mRunningJob = true; 38 mRunningJob = true;
38 } 39 }
39 mMinidumpUploader = new MinidumpUploaderImpl(this, true /* cleanOutMinid umps */); 40 mMinidumpUploader = new MinidumpUploaderImpl(
41 this, true /* cleanOutMinidumps */, PlatformServiceBridge.getIns tance(this));
40 mMinidumpUploader.uploadAllMinidumps(createJobFinishedCallback(params)); 42 mMinidumpUploader.uploadAllMinidumps(createJobFinishedCallback(params));
41 return true; // true = processing work on a separate thread, false = don e already. 43 return true; // true = processing work on a separate thread, false = don e already.
42 } 44 }
43 45
44 @Override 46 @Override
45 public boolean onStopJob(JobParameters params) { 47 public boolean onStopJob(JobParameters params) {
46 boolean reschedule = mMinidumpUploader.cancelUploads(); 48 boolean reschedule = mMinidumpUploader.cancelUploads();
47 synchronized (mRunningLock) { 49 synchronized (mRunningLock) {
48 mRunningJob = false; 50 mRunningJob = false;
49 } 51 }
(...skipping 12 matching lines...) Expand all
62 } 64 }
63 }; 65 };
64 } 66 }
65 67
66 @Override 68 @Override
67 public void onDestroy() { 69 public void onDestroy() {
68 mMinidumpUploader = null; 70 mMinidumpUploader = null;
69 super.onDestroy(); 71 super.onDestroy();
70 } 72 }
71 } 73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698