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

Unified Diff: android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java

Issue 2784353002: Android: Remove GetApplicationContext part 2 (Closed)
Patch Set: Fix tests Created 3 years, 8 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: android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java
diff --git a/android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java b/android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java
index a84bda3a1d43bc31afc03c027d1a4b0881796d6b..956c14f2b1c3514c48948e8126cc28058b1a6311 100644
--- a/android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java
+++ b/android_webview/java/src/org/chromium/android_webview/crash/CrashReceiverService.java
@@ -8,13 +8,13 @@ import android.annotation.TargetApi;
import android.app.Service;
import android.app.job.JobInfo;
import android.content.ComponentName;
-import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.Build;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
+import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.components.background_task_scheduler.TaskIds;
@@ -46,8 +46,7 @@ public class CrashReceiverService extends Service {
@Override
public void transmitCrashes(ParcelFileDescriptor[] fileDescriptors) {
int uid = Binder.getCallingUid();
- performMinidumpCopyingSerially(
- CrashReceiverService.this, uid, fileDescriptors, true /* scheduleUploads */);
+ performMinidumpCopyingSerially(uid, fileDescriptors, true /* scheduleUploads */);
}
};
@@ -58,15 +57,15 @@ public class CrashReceiverService extends Service {
* during testing).
*/
@VisibleForTesting
- public void performMinidumpCopyingSerially(Context context, int uid,
- ParcelFileDescriptor[] fileDescriptors, boolean scheduleUploads) {
+ public void performMinidumpCopyingSerially(
+ int uid, ParcelFileDescriptor[] fileDescriptors, boolean scheduleUploads) {
if (!waitUntilWeCanCopy()) {
Log.e(TAG, "something went wrong when waiting to copy minidumps, bailing!");
return;
}
try {
- boolean copySucceeded = copyMinidumps(context, uid, fileDescriptors);
+ boolean copySucceeded = copyMinidumps(uid, fileDescriptors);
if (copySucceeded && scheduleUploads) {
// Only schedule a new job if there actually are any files to upload.
scheduleNewJob();
@@ -101,7 +100,7 @@ public class CrashReceiverService extends Service {
private void scheduleNewJob() {
JobInfo.Builder builder = new JobInfo.Builder(TaskIds.WEBVIEW_MINIDUMP_UPLOADING_JOB_ID,
new ComponentName(this, AwMinidumpUploadJobService.class));
- MinidumpUploadJobService.scheduleUpload(this, builder);
+ MinidumpUploadJobService.scheduleUpload(builder);
}
/**
@@ -111,16 +110,15 @@ public class CrashReceiverService extends Service {
* @return whether any minidump was copied.
*/
@VisibleForTesting
- public static boolean copyMinidumps(
- Context context, int uid, ParcelFileDescriptor[] fileDescriptors) {
- CrashFileManager crashFileManager = new CrashFileManager(createWebViewCrashDir(context));
+ public static boolean copyMinidumps(int uid, ParcelFileDescriptor[] fileDescriptors) {
+ CrashFileManager crashFileManager = new CrashFileManager(getOrCreateWebViewCrashDir());
boolean copiedAnything = false;
if (fileDescriptors != null) {
for (ParcelFileDescriptor fd : fileDescriptors) {
if (fd == null) continue;
try {
- File copiedFile = crashFileManager.copyMinidumpFromFD(fd.getFileDescriptor(),
- getWebViewTmpCrashDir(context), uid);
+ File copiedFile = crashFileManager.copyMinidumpFromFD(
+ fd.getFileDescriptor(), getWebViewTmpCrashDir(), uid);
if (copiedFile == null) {
Log.w(TAG, "failed to copy minidump from " + fd.toString());
// TODO(gsennton): add UMA metric to ensure we aren't losing too many
@@ -132,7 +130,7 @@ public class CrashReceiverService extends Service {
Log.w(TAG, "failed to copy minidump from " + fd.toString() + ": "
+ e.getMessage());
} finally {
- deleteFilesInWebViewTmpDirIfExists(context);
+ deleteFilesInWebViewTmpDirIfExists();
}
}
}
@@ -143,8 +141,8 @@ public class CrashReceiverService extends Service {
* Delete all files in the directory where temporary files from this Service are stored.
*/
@VisibleForTesting
- public static void deleteFilesInWebViewTmpDirIfExists(Context context) {
- deleteFilesInDirIfExists(getWebViewTmpCrashDir(context));
+ public static void deleteFilesInWebViewTmpDirIfExists() {
+ deleteFilesInDirIfExists(getWebViewTmpCrashDir());
}
private static void deleteFilesInDirIfExists(File directory) {
@@ -165,12 +163,11 @@ public class CrashReceiverService extends Service {
* WebView needs a crash directory different from Chrome's to ensure Chrome's and WebView's
* minidump handling won't clash in cases where both Chrome and WebView are provided by the
* same app (Monochrome).
- * @param context Android Context used to find a cache-directory where minidumps can be stored.
* @return a reference to the created directory, or null if the creation failed.
*/
@VisibleForTesting
- public static File createWebViewCrashDir(Context context) {
- File dir = getWebViewCrashDir(context);
+ public static File getOrCreateWebViewCrashDir() {
+ File dir = getWebViewCrashDir();
// Call mkdir before isDirectory to ensure that if another thread created the directory
// just before the call to mkdir, the current thread fails mkdir, but passes isDirectory.
if (dir.mkdir() || dir.isDirectory()) {
@@ -181,21 +178,19 @@ public class CrashReceiverService extends Service {
/**
* Fetch the crash directory where WebView stores its minidumps.
- * @param context Android Context used to find a cache-directory where minidumps can be stored.
* @return a File pointing to the crash directory.
*/
@VisibleForTesting
- public static File getWebViewCrashDir(Context context) {
- return new File(context.getCacheDir(), WEBVIEW_CRASH_DIR);
+ public static File getWebViewCrashDir() {
+ return new File(ContextUtils.getApplicationContext().getCacheDir(), WEBVIEW_CRASH_DIR);
}
/**
* Directory where we store files temporarily when copying from an app process.
- * @param context Android Context used to find a cache-directory where minidumps can be stored.
*/
@VisibleForTesting
- public static File getWebViewTmpCrashDir(Context context) {
- return new File(context.getCacheDir(), WEBVIEW_TMP_CRASH_DIR);
+ public static File getWebViewTmpCrashDir() {
+ return new File(ContextUtils.getApplicationContext().getCacheDir(), WEBVIEW_TMP_CRASH_DIR);
}
@Override

Powered by Google App Engine
This is Rietveld 408576698