Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1fa26cbf authored by George Mount's avatar George Mount
Browse files

Fix monkey NullPointerException

 bug: 5385775
 Check mWebViewCore has been destroyed
 Remove mWebTextView from WebView when WebView is destroyed
 Clear WebTextView's handler when it is removed from WebView

Change-Id: I9c62292d693109e692c341e3e4dba3e04af81fe4
parent 8ebf1efd
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -768,9 +768,13 @@ import junit.framework.Assert;
            imm.hideSoftInputFromWindow(getWindowToken(), 0);
        }
        mInsideRemove = true;
        boolean isFocused = hasFocus();
        mWebView.removeView(this);
        if (isFocused) {
            mWebView.requestFocus();
        }
        mInsideRemove = false;
        mHandler.removeCallbacksAndMessages(null);
    }

    @Override
+9 −0
Original line number Diff line number Diff line
@@ -1581,6 +1581,11 @@ public class WebView extends AbsoluteLayout
            mListBoxDialog.dismiss();
            mListBoxDialog = null;
        }
        // remove so that it doesn't cause events
        if (mWebTextView != null) {
            mWebTextView.remove();
            mWebTextView = null;
        }
        if (mNativeClass != 0) nativeStopGL();
        if (mWebViewCore != null) {
            // Set the handlers to null before destroying WebViewCore so no
@@ -7636,6 +7641,10 @@ public class WebView extends AbsoluteLayout
    }

    /* package */ void passToJavaScript(String currentText, KeyEvent event) {
        // check if mWebViewCore has been destroyed
        if (mWebViewCore == null) {
            return;
        }
        WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData();
        arg.mEvent = event;
        arg.mCurrentText = currentText;