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

Commit 1d22e122 authored by Jean-Baptiste Queru's avatar Jean-Baptiste Queru Committed by Android Code Review
Browse files

Merge "Fix a monkey crash when the new WebView is destroyed."

parents 55a2df8c 35e71979
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -785,11 +785,7 @@ class BrowserFrame extends Handler {
     * @return The BrowserFrame object stored in the new WebView.
     * @return The BrowserFrame object stored in the new WebView.
     */
     */
    private BrowserFrame createWindow(boolean dialog, boolean userGesture) {
    private BrowserFrame createWindow(boolean dialog, boolean userGesture) {
        WebView w = mCallbackProxy.createWindow(dialog, userGesture);
        return mCallbackProxy.createWindow(dialog, userGesture);
        if (w != null) {
            return w.getWebViewCore().getBrowserFrame();
        }
        return null;
    }
    }


    /**
    /**
+9 −3
Original line number Original line Diff line number Diff line
@@ -1098,7 +1098,7 @@ class CallbackProxy extends Handler {
        }
        }
    }
    }


    public WebView createWindow(boolean dialog, boolean userGesture) {
    public BrowserFrame createWindow(boolean dialog, boolean userGesture) {
        // Do an unsynchronized quick check to avoid posting if no callback has
        // Do an unsynchronized quick check to avoid posting if no callback has
        // been set.
        // been set.
        if (mWebChromeClient == null) {
        if (mWebChromeClient == null) {
@@ -1122,9 +1122,15 @@ class CallbackProxy extends Handler {


        WebView w = transport.getWebView();
        WebView w = transport.getWebView();
        if (w != null) {
        if (w != null) {
            w.getWebViewCore().initializeSubwindow();
            WebViewCore core = w.getWebViewCore();
            // If WebView.destroy() has been called, core may be null.  Skip
            // initialization in that case and return null.
            if (core != null) {
                core.initializeSubwindow();
                return core.getBrowserFrame();
            }
            }
        return w;
        }
        return null;
    }
    }


    public void onRequestFocus() {
    public void onRequestFocus() {