Chromium Code Reviews| 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(); |
|
Ilya Sherman
2017/03/13 03:12:09
This move isn't a functionality change; I just mov
|
| 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); |
| } |
| } |