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.
This commit is contained in:
@@ -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.
|
// It's used to dismiss the dialog in destroy if not done before.
|
||||||
private AlertDialog mListBoxDialog = null;
|
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";
|
static final String LOGTAG = "webview";
|
||||||
|
|
||||||
private ZoomManager mZoomManager;
|
private ZoomManager mZoomManager;
|
||||||
@@ -1836,7 +1840,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
|||||||
neverRemember.getData().putString("password", password);
|
neverRemember.getData().putString("password", password);
|
||||||
neverRemember.obj = resumeMsg;
|
neverRemember.obj = resumeMsg;
|
||||||
|
|
||||||
new AlertDialog.Builder(mContext)
|
mSavePasswordDialog = new AlertDialog.Builder(mContext)
|
||||||
.setTitle(com.android.internal.R.string.save_password_label)
|
.setTitle(com.android.internal.R.string.save_password_label)
|
||||||
.setMessage(com.android.internal.R.string.save_password_message)
|
.setMessage(com.android.internal.R.string.save_password_message)
|
||||||
.setPositiveButton(com.android.internal.R.string.save_password_notnow,
|
.setPositiveButton(com.android.internal.R.string.save_password_notnow,
|
||||||
@@ -1847,6 +1851,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
|||||||
resumeMsg.sendToTarget();
|
resumeMsg.sendToTarget();
|
||||||
mResumeMsg = null;
|
mResumeMsg = null;
|
||||||
}
|
}
|
||||||
|
mSavePasswordDialog = null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNeutralButton(com.android.internal.R.string.save_password_remember,
|
.setNeutralButton(com.android.internal.R.string.save_password_remember,
|
||||||
@@ -1857,6 +1862,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
|||||||
remember.sendToTarget();
|
remember.sendToTarget();
|
||||||
mResumeMsg = null;
|
mResumeMsg = null;
|
||||||
}
|
}
|
||||||
|
mSavePasswordDialog = null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(com.android.internal.R.string.save_password_never,
|
.setNegativeButton(com.android.internal.R.string.save_password_never,
|
||||||
@@ -1867,6 +1873,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
|||||||
neverRemember.sendToTarget();
|
neverRemember.sendToTarget();
|
||||||
mResumeMsg = null;
|
mResumeMsg = null;
|
||||||
}
|
}
|
||||||
|
mSavePasswordDialog = null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setOnCancelListener(new OnCancelListener() {
|
.setOnCancelListener(new OnCancelListener() {
|
||||||
@@ -1876,6 +1883,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
|
|||||||
resumeMsg.sendToTarget();
|
resumeMsg.sendToTarget();
|
||||||
mResumeMsg = null;
|
mResumeMsg = null;
|
||||||
}
|
}
|
||||||
|
mSavePasswordDialog = null;
|
||||||
}
|
}
|
||||||
}).show();
|
}).show();
|
||||||
// Return true so that WebViewCore will pause while the dialog is
|
// 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.dismiss();
|
||||||
mListBoxDialog = null;
|
mListBoxDialog = null;
|
||||||
}
|
}
|
||||||
|
if (mSavePasswordDialog != null) {
|
||||||
|
mSavePasswordDialog.dismiss();
|
||||||
|
mSavePasswordDialog = null;
|
||||||
|
}
|
||||||
if (mWebViewCore != null) {
|
if (mWebViewCore != null) {
|
||||||
// Tell WebViewCore to destroy itself
|
// Tell WebViewCore to destroy itself
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
|
|||||||
Reference in New Issue
Block a user