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

Commit 202a2c97 authored by Ben Murdoch's avatar Ben Murdoch Committed by Android (Google) Code Review
Browse files

Merge "Work around race condition in CallBackProxy."

parents 9ef0283b 0406e48d
Loading
Loading
Loading
Loading
+14 −16
Original line number Diff line number Diff line
@@ -496,10 +496,7 @@ class CallbackProxy extends Handler {
                    String url = msg.getData().getString("url");
                    if (!mWebChromeClient.onJsAlert(mWebView, url, message,
                            res)) {
                        // only display the alert dialog if the mContext is
                        // Activity and its window has the focus.
                        if (!(mContext instanceof Activity)
                                || !((Activity) mContext).hasWindowFocus()) {
                        if (!canShowAlertDialog()) {
                            res.cancel();
                            res.setReady();
                            break;
@@ -535,10 +532,7 @@ class CallbackProxy extends Handler {
                    String url = msg.getData().getString("url");
                    if (!mWebChromeClient.onJsConfirm(mWebView, url, message,
                            res)) {
                        // only display the alert dialog if the mContext is
                        // Activity and its window has the focus.
                        if (!(mContext instanceof Activity)
                                || !((Activity) mContext).hasWindowFocus()) {
                        if (!canShowAlertDialog()) {
                            res.cancel();
                            res.setReady();
                            break;
@@ -583,10 +577,7 @@ class CallbackProxy extends Handler {
                    String url = msg.getData().getString("url");
                    if (!mWebChromeClient.onJsPrompt(mWebView, url, message,
                                defaultVal, res)) {
                        // only display the alert dialog if the mContext is
                        // Activity and its window has the focus.
                        if (!(mContext instanceof Activity)
                                || !((Activity) mContext).hasWindowFocus()) {
                        if (!canShowAlertDialog()) {
                            res.cancel();
                            res.setReady();
                            break;
@@ -642,10 +633,7 @@ class CallbackProxy extends Handler {
                    String url = msg.getData().getString("url");
                    if (!mWebChromeClient.onJsBeforeUnload(mWebView, url,
                            message, res)) {
                        // only display the alert dialog if the mContext is
                        // Activity and its window has the focus.
                        if (!(mContext instanceof Activity)
                                || !((Activity) mContext).hasWindowFocus()) {
                        if (!canShowAlertDialog()) {
                            res.cancel();
                            res.setReady();
                            break;
@@ -1555,4 +1543,14 @@ class CallbackProxy extends Handler {
        }
        sendMessage(obtainMessage(SET_INSTALLABLE_WEBAPP));
    }

    boolean canShowAlertDialog() {
        // We can only display the alert dialog if mContext is
        // an Activity context.
        // FIXME: Should we display dialogs if mContext does
        // not have the window focus (e.g. if the user is viewing
        // another Activity when the alert should be displayed?
        // See bug 3166409
        return mContext instanceof Activity;
    }
}