Merge "onSavePassword dialog can leak when WebViewClassic is destroyed."
This commit is contained in:
@@ -686,6 +686,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;
|
||||
@@ -1811,7 +1815,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,
|
||||
@@ -1822,6 +1826,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
||||
resumeMsg.sendToTarget();
|
||||
mResumeMsg = null;
|
||||
}
|
||||
mSavePasswordDialog = null;
|
||||
}
|
||||
})
|
||||
.setNeutralButton(com.android.internal.R.string.save_password_remember,
|
||||
@@ -1832,6 +1837,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
||||
remember.sendToTarget();
|
||||
mResumeMsg = null;
|
||||
}
|
||||
mSavePasswordDialog = null;
|
||||
}
|
||||
})
|
||||
.setNegativeButton(com.android.internal.R.string.save_password_never,
|
||||
@@ -1842,6 +1848,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
||||
neverRemember.sendToTarget();
|
||||
mResumeMsg = null;
|
||||
}
|
||||
mSavePasswordDialog = null;
|
||||
}
|
||||
})
|
||||
.setOnCancelListener(new OnCancelListener() {
|
||||
@@ -1851,6 +1858,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
|
||||
@@ -2090,6 +2098,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) {
|
||||
|
||||
Reference in New Issue
Block a user