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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java

Issue 2737263006: [Android Crash Reporting] Allow uploading minidumps via the JobScheduler (Closed)
Patch Set: Assert that job scheduled successfully Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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);
}
}

Powered by Google App Engine
This is Rietveld 408576698