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

Commit fef288b0 authored by John Reck's avatar John Reck Committed by Android Git Automerger
Browse files

am 8f58dfa9: am da5cd308: am ae03afda: Merge "onSavePassword dialog can leak...

am 8f58dfa9: am da5cd308: am ae03afda: Merge "onSavePassword dialog can leak when WebViewClassic is destroyed."

* commit '8f58dfa9':
  onSavePassword dialog can leak when WebViewClassic is destroyed.
parents e217ee4d 8f58dfa9
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -687,6 +687,10 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
    // It's used to dismiss the dialog in destroy if not done before.
    private AlertDialog mListBoxDialog = null;

    // Reference to the save password dialog so it can be dimissed in
    // destroy if not done before.
    private AlertDialog mSavePasswordDialog = null;

    static final String LOGTAG = "webview";

    private ZoomManager mZoomManager;
@@ -1836,7 +1840,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
            neverRemember.getData().putString("password", password);
            neverRemember.obj = resumeMsg;

            new AlertDialog.Builder(mContext)
            mSavePasswordDialog = new AlertDialog.Builder(mContext)
                    .setTitle(com.android.internal.R.string.save_password_label)
                    .setMessage(com.android.internal.R.string.save_password_message)
                    .setPositiveButton(com.android.internal.R.string.save_password_notnow,
@@ -1847,6 +1851,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
                                resumeMsg.sendToTarget();
                                mResumeMsg = null;
                            }
                            mSavePasswordDialog = null;
                        }
                    })
                    .setNeutralButton(com.android.internal.R.string.save_password_remember,
@@ -1857,6 +1862,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
                                remember.sendToTarget();
                                mResumeMsg = null;
                            }
                            mSavePasswordDialog = null;
                        }
                    })
                    .setNegativeButton(com.android.internal.R.string.save_password_never,
@@ -1867,6 +1873,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
                                neverRemember.sendToTarget();
                                mResumeMsg = null;
                            }
                            mSavePasswordDialog = null;
                        }
                    })
                    .setOnCancelListener(new OnCancelListener() {
@@ -1876,6 +1883,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
                                resumeMsg.sendToTarget();
                                mResumeMsg = null;
                            }
                            mSavePasswordDialog = null;
                        }
                    }).show();
            // Return true so that WebViewCore will pause while the dialog is
@@ -2115,6 +2123,10 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
            mListBoxDialog.dismiss();
            mListBoxDialog = null;
        }
        if (mSavePasswordDialog != null) {
            mSavePasswordDialog.dismiss();
            mSavePasswordDialog = null;
        }
        if (mWebViewCore != null) {
            // Tell WebViewCore to destroy itself
            synchronized (this) {