Index: chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
index 9019f83dbdf1f0704aa3ccc77457281b995e0ac8..b60a16ce94bc4f8d95e1ddbf253e869a73af3a16 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java |
@@ -325,11 +325,11 @@ public class DeferredStartupHandler { |
boolean crashReportingDisabled = CommandLine.getInstance().hasSwitch( |
ChromeSwitches.DISABLE_CRASH_DUMP_UPLOAD); |
if (crashReportingDisabled) return; |
+ PrivacyPreferencesManager.getInstance().enablePotentialCrashUploading(); |
RecordHistogram.recordLongTimesHistogram("UMA.Debug.EnableCrashUpload.Uptime3", |
mAsyncTaskStartTime - UmaUtils.getForegroundStartTime(), |
TimeUnit.MILLISECONDS); |
- PrivacyPreferencesManager.getInstance().enablePotentialCrashUploading(); |
// Finally, uploading any pending crash reports. |
File[] minidumps = crashFileManager.getAllMinidumpFiles( |
@@ -354,18 +354,23 @@ public class DeferredStartupHandler { |
if (doesCrashMinidumpNeedLogcat(mostRecentMinidump)) { |
AsyncTask.THREAD_POOL_EXECUTOR.execute( |
new LogcatExtractionRunnable(mAppContext, mostRecentMinidump)); |
+ |
+ // The JobScheduler will schedule uploads for all of the available minidumps |
+ // once the logcat is attached. But if the JobScheduler API is not being used, |
+ // then the logcat extraction process will only initiate an upload for the first |
+ // minidump; it's required to manually initiate uploads for all of the remaining |
+ // minidumps. |
+ if (!MinidumpUploadService.shouldUseJobSchedulerForUploads()) { |
+ List<File> remainingMinidumps = |
+ Arrays.asList(minidumps).subList(1, minidumps.length); |
+ for (File minidump : remainingMinidumps) { |
+ MinidumpUploadService.tryUploadCrashDump(mAppContext, minidump); |
+ } |
+ } |
+ } else if (MinidumpUploadService.shouldUseJobSchedulerForUploads()) { |
+ MinidumpUploadService.scheduleUploadJob(mAppContext); |
} else { |
- MinidumpUploadService.tryUploadCrashDump(mAppContext, mostRecentMinidump); |
- } |
- // TODO(isherman): Once there is support implemented for the JobScheduler API, |
- // we should only explicitly upload the remaining files here if not using that |
- // API. If we *are* using the JobScheduler API, then the JobScheduler will |
- // schedule uploads for all of the available minidumps once the logcat is |
- // attached. |
- List<File> remainingMinidumps = |
- Arrays.asList(minidumps).subList(1, minidumps.length); |
- for (File minidump : remainingMinidumps) { |
- MinidumpUploadService.tryUploadCrashDump(mAppContext, minidump); |
+ MinidumpUploadService.tryUploadAllCrashDumps(mAppContext); |
} |
} |