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

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

Issue 2324983002: [Android] Wire up manual crash uploads. (Closed)
Patch Set: Fix pending upload handling, and nit fixes Created 4 years, 3 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
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceTest.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java
index 718f4bd8602fc7832b0abbed1a82466da04b013d..1b74a0b71b1717f3493df0860aaf54fd6543335f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadService.java
@@ -13,7 +13,6 @@ import org.chromium.base.Log;
import org.chromium.base.StreamUtil;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
@@ -25,7 +24,6 @@ import java.io.IOException;
/**
* Service that is responsible for uploading crash minidumps to the Google crash server.
*/
-@JNINamespace("crash")
public class MinidumpUploadService extends IntentService {
private static final String TAG = "MinidmpUploadService";
// Intent actions
@@ -38,11 +36,16 @@ public class MinidumpUploadService extends IntentService {
@VisibleForTesting
static final String ACTION_UPLOAD = "com.google.android.apps.chrome.crash.ACTION_UPLOAD";
+ @VisibleForTesting
+ static final String ACTION_FORCE_UPLOAD =
+ "com.google.android.apps.chrome.crash.ACTION_FORCE_UPLOAD";
+
// Intent bundle keys
@VisibleForTesting
static final String FILE_TO_UPLOAD_KEY = "minidump_file";
static final String UPLOAD_LOG_KEY = "upload_log";
static final String FINISHED_LOGCAT_EXTRACTION_KEY = "upload_extraction_completed";
+ static final String LOCAL_CRASH_ID_KEY = "local_id";
/**
* The number of times we will try to upload a crash.
@@ -104,6 +107,8 @@ public class MinidumpUploadService extends IntentService {
handleFindAndUploadAllCrashes();
} else if (ACTION_UPLOAD.equals(intent.getAction())) {
handleUploadCrash(intent);
+ } else if (ACTION_FORCE_UPLOAD.equals(intent.getAction())) {
+ handleForceUploadCrash(intent);
} else {
Log.w(TAG, "Got unknown action from intent: " + intent.getAction());
}
@@ -355,10 +360,24 @@ public class MinidumpUploadService extends IntentService {
*
* This method is safe to call from the UI thread.
*
+ * @param context the context to use for the intent.
* @param localId The local ID of the crash report.
*/
@CalledByNative
- public void tryUploadCrashDumpWithLocalId(String localId) {
+ public static void tryUploadCrashDumpWithLocalId(Context context, String localId) {
+ Intent intent = new Intent(context, MinidumpUploadService.class);
+ intent.setAction(ACTION_FORCE_UPLOAD);
+ intent.putExtra(LOCAL_CRASH_ID_KEY, localId);
+ context.startService(intent);
+ }
+
+ private void handleForceUploadCrash(Intent intent) {
+ String localId = intent.getStringExtra(LOCAL_CRASH_ID_KEY);
+ if (localId == null || localId.isEmpty()) {
+ Log.w(TAG, "Cannot force crash upload since local crash id is absent.");
+ return;
+ }
+
Context context = getApplicationContext();
CrashFileManager fileManager = new CrashFileManager(context.getCacheDir());
File minidumpFile = fileManager.getCrashFileWithLocalId(localId);
« no previous file with comments | « no previous file | chrome/android/javatests/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698