Index: base/message_loop/message_pump_android.h |
diff --git a/base/message_loop/message_pump_android.h b/base/message_loop/message_pump_android.h |
index 795bd5e79ee69569347d3c0c57522c3717c892ee..70f4c1e3b486e22e1647af9498a196eb4b17edb2 100644 |
--- a/base/message_loop/message_pump_android.h |
+++ b/base/message_loop/message_pump_android.h |
@@ -31,12 +31,19 @@ class BASE_EXPORT MessagePumpForUI : public MessagePump { |
void ScheduleDelayedWork(const TimeTicks& delayed_work_time) override; |
virtual void Start(Delegate* delegate); |
+ // We call Abort when there is a pending JNI exception, meaning that the |
+ // current thread will crash when we return to Java. |
+ // We can't call any jni-methods before returning to Java as we would then |
+ // cause a native crash (instead of the original Java crash) |
+ void Abort() { should_abort_ = true; } |
+ bool ShouldAbort() const { return should_abort_; } |
static bool RegisterBindings(JNIEnv* env); |
private: |
RunLoop* run_loop_; |
base::android::ScopedJavaGlobalRef<jobject> system_message_handler_obj_; |
+ bool should_abort_; |
DISALLOW_COPY_AND_ASSIGN(MessagePumpForUI); |
}; |