Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1459)

Unified Diff: chrome/browser/gtk/ssl_client_certificate_selector.cc

Issue 5686002: NSS: PKCS 11 password prompt. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/gtk/ssl_client_certificate_selector.cc
diff --git a/chrome/browser/gtk/ssl_client_certificate_selector.cc b/chrome/browser/gtk/ssl_client_certificate_selector.cc
index 8e4077e934ec9721d9b2ad2aa58b8c5ffd302c94..09d03877992c734e801c5577ec2f03bf650994f5 100644
--- a/chrome/browser/gtk/ssl_client_certificate_selector.cc
+++ b/chrome/browser/gtk/ssl_client_certificate_selector.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/gtk/owned_widget_gtk.h"
#include "chrome/browser/ssl/ssl_client_auth_handler.h"
#include "chrome/browser/tab_contents/tab_contents.h"
+#include "chrome/browser/ui/pk11_password_dialog.h"
#include "chrome/common/net/x509_certificate_model.h"
#include "gfx/native_widget_types.h"
#include "grit/generated_resources.h"
@@ -60,6 +61,9 @@ class SSLClientCertificateSelector : public ConstrainedDialogDelegate {
static std::string FormatDetailsText(
net::X509Certificate::OSCertHandle cert);
+ // Callback after unlocking certificate slot.
+ void Unlocked();
+
CHROMEGTK_CALLBACK_0(SSLClientCertificateSelector, void, OnComboBoxChanged);
CHROMEGTK_CALLBACK_0(SSLClientCertificateSelector, void, OnViewClicked);
CHROMEGTK_CALLBACK_0(SSLClientCertificateSelector, void, OnCancelClicked);
@@ -246,7 +250,7 @@ std::string SSLClientCertificateSelector::FormatDetailsText(
rv += l10n_util::GetStringFUTF8(
IDS_CERT_SUBJECTNAME_FORMAT,
- UTF8ToUTF16(x509_certificate_model::GetSubjectName(cert)));;
+ UTF8ToUTF16(x509_certificate_model::GetSubjectName(cert)));
rv += "\n ";
rv += l10n_util::GetStringFUTF8(
@@ -303,6 +307,14 @@ std::string SSLClientCertificateSelector::FormatDetailsText(
return rv;
}
+void SSLClientCertificateSelector::Unlocked() {
+ net::X509Certificate* cert = GetSelectedCert();
wtc 2010/12/15 20:54:36 Can |cert| be passed to this method as a parameter
mattm 2011/01/12 01:22:07 Could be done, but UnlockSlotIfNecessary and Unloc
+ delegate_->CertificateSelected(cert);
+ delegate_ = NULL;
+ DCHECK(window_);
+ window_->CloseConstrainedWindow();
+}
+
void SSLClientCertificateSelector::OnComboBoxChanged(GtkWidget* combo_box) {
int selected = gtk_combo_box_get_active(
GTK_COMBO_BOX(cert_combo_box_));
@@ -330,10 +342,12 @@ void SSLClientCertificateSelector::OnCancelClicked(GtkWidget* button) {
void SSLClientCertificateSelector::OnOkClicked(GtkWidget* button) {
net::X509Certificate* cert = GetSelectedCert();
- delegate_->CertificateSelected(cert);
- delegate_ = NULL;
- DCHECK(window_);
- window_->CloseConstrainedWindow();
+
+ browser::UnlockCertSlotIfNecessary(
+ cert,
+ browser::kPK11PasswordClientAuth,
+ cert_request_info_->host_and_port, // TODO(mattm): strip port part?
wtc 2010/12/15 20:54:36 The port part is important.
mattm 2011/01/12 01:22:07 Done.
+ NewCallback(this, &SSLClientCertificateSelector::Unlocked));
}
void SSLClientCertificateSelector::OnPromptShown(GtkWidget* widget,

Powered by Google App Engine
This is Rietveld 408576698