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

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

Issue 9384014: Remove knowledge about SSLClientAuthHandler from chrome. Instead a callback is given to the embed... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix aura Created 8 years, 10 months 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/ui/gtk/ssl_client_certificate_selector.cc
===================================================================
--- chrome/browser/ui/gtk/ssl_client_certificate_selector.cc (revision 121323)
+++ chrome/browser/ui/gtk/ssl_client_certificate_selector.cc (working copy)
@@ -14,14 +14,15 @@
#include "base/logging.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/certificate_viewer.h"
+#include "chrome/browser/ssl/ssl_client_auth_observer.h"
#include "chrome/browser/ui/crypto_module_password_dialog.h"
#include "chrome/browser/ui/gtk/constrained_window_gtk.h"
#include "chrome/browser/ui/gtk/gtk_util.h"
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
#include "chrome/common/net/x509_certificate_model.h"
-#include "content/browser/ssl/ssl_client_auth_handler.h"
#include "content/public/browser/browser_thread.h"
#include "grit/generated_resources.h"
+#include "net/base/ssl_cert_request_info.h"
#include "net/base/x509_certificate.h"
#include "ui/base/gtk/gtk_compat.h"
#include "ui/base/gtk/gtk_hig_constants.h"
@@ -46,8 +47,9 @@
public:
explicit SSLClientCertificateSelector(
TabContentsWrapper* parent,
+ const net::HttpNetworkSession* network_session,
net::SSLCertRequestInfo* cert_request_info,
- SSLClientAuthHandler* delegate);
+ const base::Callback<void(net::X509Certificate*)>& callback);
~SSLClientCertificateSelector();
void Show();
@@ -81,15 +83,11 @@
CHROMEGTK_CALLBACK_1(SSLClientCertificateSelector, void, OnPromptShown,
GtkWidget*);
- scoped_refptr<net::SSLCertRequestInfo> cert_request_info_;
-
std::vector<std::string> details_strings_;
GtkWidget* cert_combo_box_;
GtkTextBuffer* cert_details_buffer_;
- scoped_refptr<SSLClientAuthHandler> delegate_;
-
ui::OwnedWidgetGtk root_widget_;
// Hold on to the select button to focus it.
GtkWidget* select_button_;
@@ -102,11 +100,10 @@
SSLClientCertificateSelector::SSLClientCertificateSelector(
TabContentsWrapper* wrapper,
+ const net::HttpNetworkSession* network_session,
net::SSLCertRequestInfo* cert_request_info,
- SSLClientAuthHandler* delegate)
- : SSLClientAuthObserver(cert_request_info, delegate),
- cert_request_info_(cert_request_info),
- delegate_(delegate),
+ const base::Callback<void(net::X509Certificate*)>& callback)
+ : SSLClientAuthObserver(network_session, cert_request_info, callback),
wrapper_(wrapper),
window_(NULL) {
root_widget_.Own(gtk_vbox_new(FALSE, ui::kControlSpacing));
@@ -204,7 +201,6 @@
}
void SSLClientCertificateSelector::OnCertSelectedByNotification() {
- delegate_ = NULL;
DCHECK(window_);
window_->CloseConstrainedWindow();
}
@@ -214,28 +210,26 @@
}
void SSLClientCertificateSelector::DeleteDelegate() {
- if (delegate_) {
- // The dialog was closed by escape key.
- StopObserving();
- delegate_->CertificateSelected(NULL);
- }
+ // The dialog was closed by escape key.
+ StopObserving();
+ CertificateSelected(NULL);
delete this;
}
void SSLClientCertificateSelector::PopulateCerts() {
std::vector<std::string> nicknames;
x509_certificate_model::GetNicknameStringsFromCertList(
- cert_request_info_->client_certs,
+ cert_request_info()->client_certs,
l10n_util::GetStringUTF8(IDS_CERT_SELECTOR_CERT_EXPIRED),
l10n_util::GetStringUTF8(IDS_CERT_SELECTOR_CERT_NOT_YET_VALID),
&nicknames);
DCHECK_EQ(nicknames.size(),
- cert_request_info_->client_certs.size());
+ cert_request_info()->client_certs.size());
- for (size_t i = 0; i < cert_request_info_->client_certs.size(); ++i) {
+ for (size_t i = 0; i < cert_request_info()->client_certs.size(); ++i) {
net::X509Certificate::OSCertHandle cert =
- cert_request_info_->client_certs[i]->os_cert_handle();
+ cert_request_info()->client_certs[i]->os_cert_handle();
details_strings_.push_back(FormatDetailsText(cert));
@@ -252,8 +246,8 @@
int selected = gtk_combo_box_get_active(GTK_COMBO_BOX(cert_combo_box_));
if (selected >= 0 &&
selected < static_cast<int>(
- cert_request_info_->client_certs.size()))
- return cert_request_info_->client_certs[selected];
+ cert_request_info()->client_certs.size()))
+ return cert_request_info()->client_certs[selected];
return NULL;
}
@@ -332,8 +326,7 @@
void SSLClientCertificateSelector::Unlocked() {
// TODO(mattm): refactor so we don't need to call GetSelectedCert again.
net::X509Certificate* cert = GetSelectedCert();
- delegate_->CertificateSelected(cert);
- delegate_ = NULL;
+ CertificateSelected(cert);
DCHECK(window_);
window_->CloseConstrainedWindow();
}
@@ -357,9 +350,7 @@
}
void SSLClientCertificateSelector::OnCancelClicked(GtkWidget* button) {
- StopObserving();
- delegate_->CertificateSelected(NULL);
- delegate_ = NULL;
+ CertificateSelected(NULL);
DCHECK(window_);
window_->CloseConstrainedWindow();
}
@@ -375,7 +366,7 @@
browser::UnlockCertSlotIfNecessary(
cert,
browser::kCryptoModulePasswordClientAuth,
- cert_request_info_->host_and_port,
+ cert_request_info()->host_and_port,
base::Bind(&SSLClientCertificateSelector::Unlocked,
base::Unretained(this)));
}
@@ -398,12 +389,12 @@
void ShowNativeSSLClientCertificateSelector(
TabContentsWrapper* wrapper,
+ const net::HttpNetworkSession* network_session,
net::SSLCertRequestInfo* cert_request_info,
- SSLClientAuthHandler* delegate) {
+ const base::Callback<void(net::X509Certificate*)>& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- (new SSLClientCertificateSelector(wrapper,
- cert_request_info,
- delegate))->Show();
+ (new SSLClientCertificateSelector(
+ wrapper, network_session, cert_request_info, callback))->Show();
}
} // namespace browser

Powered by Google App Engine
This is Rietveld 408576698