OLD | NEW |
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 Loading... |
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 } |
OLD | NEW |