summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-29 22:01:40 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-29 22:01:40 +0000
commitcc261c28ed22b9b9ce1c884697dd7ba5b1b6df7d (patch)
treef47659f853ee0ac597c8044e74c43e7744667b0c /chrome
parent3f05b8d80f961a408a50a0ded198fc83c07125f3 (diff)
downloadchromium_src-cc261c28ed22b9b9ce1c884697dd7ba5b1b6df7d.zip
chromium_src-cc261c28ed22b9b9ce1c884697dd7ba5b1b6df7d.tar.gz
chromium_src-cc261c28ed22b9b9ce1c884697dd7ba5b1b6df7d.tar.bz2
Linux: Fix client certificate selection dialog handling of esc key.
BUG=none TEST=open site requesting client certificate, hit esc Review URL: http://codereview.chromium.org/5288004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67596 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/gtk/ssl_client_certificate_selector.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/chrome/browser/gtk/ssl_client_certificate_selector.cc b/chrome/browser/gtk/ssl_client_certificate_selector.cc
index dad8084..8e4077e 100644
--- a/chrome/browser/gtk/ssl_client_certificate_selector.cc
+++ b/chrome/browser/gtk/ssl_client_certificate_selector.cc
@@ -47,7 +47,7 @@ class SSLClientCertificateSelector : public ConstrainedDialogDelegate {
// ConstrainedDialogDelegate implementation:
virtual GtkWidget* GetWidgetRoot() { return root_widget_.get(); }
- virtual void DeleteDelegate() { delete this; }
+ virtual void DeleteDelegate();
private:
void PopulateCerts();
@@ -186,6 +186,14 @@ void SSLClientCertificateSelector::Show() {
window_ = parent_->CreateConstrainedDialog(this);
}
+void SSLClientCertificateSelector::DeleteDelegate() {
+ if (delegate_) {
+ // The dialog was closed by escape key.
+ delegate_->CertificateSelected(NULL);
+ }
+ delete this;
+}
+
void SSLClientCertificateSelector::PopulateCerts() {
std::vector<std::string> nicknames;
x509_certificate_model::GetNicknameStringsFromCertList(
@@ -315,6 +323,7 @@ void SSLClientCertificateSelector::OnViewClicked(GtkWidget* button) {
void SSLClientCertificateSelector::OnCancelClicked(GtkWidget* button) {
delegate_->CertificateSelected(NULL);
+ delegate_ = NULL;
DCHECK(window_);
window_->CloseConstrainedWindow();
}
@@ -322,6 +331,7 @@ void SSLClientCertificateSelector::OnCancelClicked(GtkWidget* button) {
void SSLClientCertificateSelector::OnOkClicked(GtkWidget* button) {
net::X509Certificate* cert = GetSelectedCert();
delegate_->CertificateSelected(cert);
+ delegate_ = NULL;
DCHECK(window_);
window_->CloseConstrainedWindow();
}