| Index: base/android/java/src/org/chromium/base/JavaExceptionReporter.java
|
| diff --git a/base/android/java/src/org/chromium/base/JavaExceptionReporter.java b/base/android/java/src/org/chromium/base/JavaExceptionReporter.java
|
| index ada0bae0cb206bcf16d0c3126efc7387bd52da5d..f192f78c10472d0055128700883aa9b019ff7837 100644
|
| --- a/base/android/java/src/org/chromium/base/JavaExceptionReporter.java
|
| +++ b/base/android/java/src/org/chromium/base/JavaExceptionReporter.java
|
| @@ -20,18 +20,21 @@ import org.chromium.base.annotations.MainDex;
|
| @JNINamespace("base::android")
|
| @MainDex
|
| public class JavaExceptionReporter implements Thread.UncaughtExceptionHandler {
|
| - private Thread.UncaughtExceptionHandler mParent;
|
| + private final Thread.UncaughtExceptionHandler mParent;
|
| + private final boolean mCrashAfterReport;
|
| private boolean mHandlingException;
|
|
|
| - private JavaExceptionReporter(Thread.UncaughtExceptionHandler parent) {
|
| + private JavaExceptionReporter(
|
| + Thread.UncaughtExceptionHandler parent, boolean crashAfterReport) {
|
| mParent = parent;
|
| + mCrashAfterReport = crashAfterReport;
|
| }
|
|
|
| @Override
|
| public void uncaughtException(Thread t, Throwable e) {
|
| if (!mHandlingException) {
|
| mHandlingException = true;
|
| - nativeReportJavaException(e);
|
| + nativeReportJavaException(mCrashAfterReport, e);
|
| }
|
| if (mParent != null) {
|
| mParent.uncaughtException(t, e);
|
| @@ -52,11 +55,11 @@ public class JavaExceptionReporter implements Thread.UncaughtExceptionHandler {
|
| }
|
|
|
| @CalledByNative
|
| - private static void installHandler() {
|
| - Thread.setDefaultUncaughtExceptionHandler(
|
| - new JavaExceptionReporter(Thread.getDefaultUncaughtExceptionHandler()));
|
| + private static void installHandler(boolean crashAfterReport) {
|
| + Thread.setDefaultUncaughtExceptionHandler(new JavaExceptionReporter(
|
| + Thread.getDefaultUncaughtExceptionHandler(), crashAfterReport));
|
| }
|
|
|
| - private static native void nativeReportJavaException(Throwable e);
|
| + private static native void nativeReportJavaException(boolean crashAfterReport, Throwable e);
|
| private static native void nativeReportJavaStackTrace(String stackTrace);
|
| }
|
|
|