Chromium Code Reviews| Index: components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java |
| diff --git a/android_webview/java/src/org/chromium/android_webview/crash/MinidumpUploadJobService.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java |
| similarity index 69% |
| rename from android_webview/java/src/org/chromium/android_webview/crash/MinidumpUploadJobService.java |
| rename to components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java |
| index 82a684b2262c876cca43372d58d41202987fcce3..8cd895b900f48856200c3fe195dc0906f3ca8436 100644 |
| --- a/android_webview/java/src/org/chromium/android_webview/crash/MinidumpUploadJobService.java |
| +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java |
| @@ -1,39 +1,27 @@ |
| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -package org.chromium.android_webview.crash; |
| +package org.chromium.components.minidump_uploader; |
| import android.annotation.TargetApi; |
| import android.app.job.JobParameters; |
| import android.app.job.JobService; |
| import android.os.Build; |
| -import org.chromium.android_webview.command_line.CommandLineUtil; |
| import org.chromium.base.ContextUtils; |
| -import org.chromium.components.minidump_uploader.MinidumpUploader; |
| /** |
| * Class that interacts with the Android JobScheduler to upload Minidumps at appropriate times. |
| */ |
| @TargetApi(Build.VERSION_CODES.LOLLIPOP) |
| -// OBS: This class needs to be public to be started from android.app.ActivityThread. |
| -public class MinidumpUploadJobService extends JobService { |
| +public abstract class MinidumpUploadJobService extends JobService { |
| Object mRunningLock = new Object(); |
| boolean mRunningJob = false; |
| MinidumpUploader mMinidumpUploader; |
| @Override |
| - public void onCreate() { |
| - super.onCreate(); |
| - // This overwrites the command line set by ChromeApplication.onCreate() to use a |
| - // WebView-specific command line file. This is okay since this Service is not running in the |
| - // same process as the main Chrome process. |
| - CommandLineUtil.initCommandLine(); |
| - } |
| - |
| - @Override |
| public boolean onStartJob(JobParameters params) { |
| - // Ensure we can use ContextUtils later on (from minidump_uploader component). |
| + // Ensure we can use ContextUtils later on. |
| ContextUtils.initApplicationContext(this.getApplicationContext()); |
|
Tobias Sargeant
2017/02/28 22:30:11
Given that minidump uploader creation is deferred
Ilya Sherman
2017/02/28 23:50:53
Good call! It's actually not the created object t
|
| // Ensure we only run one job at a time. |
| @@ -41,7 +29,7 @@ public class MinidumpUploadJobService extends JobService { |
| assert !mRunningJob; |
| mRunningJob = true; |
| } |
| - mMinidumpUploader = new MinidumpUploaderImpl(this, true /* cleanOutMinidumps */); |
| + mMinidumpUploader = createMinidumpUploader(); |
| mMinidumpUploader.uploadAllMinidumps(createJobFinishedCallback(params)); |
| return true; // true = processing work on a separate thread, false = done already. |
| } |
| @@ -55,6 +43,12 @@ public class MinidumpUploadJobService extends JobService { |
| return reschedule; |
| } |
| + @Override |
| + public void onDestroy() { |
| + mMinidumpUploader = null; |
| + super.onDestroy(); |
| + } |
| + |
| private MinidumpUploader.UploadsFinishedCallback createJobFinishedCallback( |
| final JobParameters params) { |
| return new MinidumpUploader.UploadsFinishedCallback() { |
| @@ -68,9 +62,8 @@ public class MinidumpUploadJobService extends JobService { |
| }; |
| } |
| - @Override |
| - public void onDestroy() { |
| - mMinidumpUploader = null; |
| - super.onDestroy(); |
| - } |
| + /** |
| + * @return The minidump uploader that jobs should use. |
| + */ |
| + protected abstract MinidumpUploader createMinidumpUploader(); |
| } |