summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Reck <jreck@android.com>2012-08-30 11:45:47 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-30 11:45:47 -0700
commitfef288b01cdb4cabb651c0fc0434a97bd40f12f6 (patch)
treeaa3da1a098bf2f2fa00966a105e092554e70c300
parente217ee4d7a8223289a1af7363627c69956c46d41 (diff)
parent8f58dfa975d01c5c50de513848a6aa8a4460d32c (diff)
downloadframeworks_base-fef288b01cdb4cabb651c0fc0434a97bd40f12f6.zip
frameworks_base-fef288b01cdb4cabb651c0fc0434a97bd40f12f6.tar.gz
frameworks_base-fef288b01cdb4cabb651c0fc0434a97bd40f12f6.tar.bz2
am 8f58dfa9: am da5cd308: am ae03afda: Merge "onSavePassword dialog can leak when WebViewClassic is destroyed."
* commit '8f58dfa975d01c5c50de513848a6aa8a4460d32c': onSavePassword dialog can leak when WebViewClassic is destroyed.
-rw-r--r--core/java/android/webkit/WebViewClassic.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index e16dd06..591b87f 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -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) {