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

Unified Diff: chrome/browser/ui/views/certificate_selector.cc

Issue 2898573002: Refactor client cert private key handling. (Closed)
Patch Set: rebase on https://codereview.chromium.org/2899083006/ Created 3 years, 7 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/views/certificate_selector.cc
diff --git a/chrome/browser/ui/views/certificate_selector.cc b/chrome/browser/ui/views/certificate_selector.cc
index 4ae2049f9d15d6252ed46d6ea1a65c373db4bad8..ee9d0e126c977d92103ff29bc7216efc5064ba05 100644
--- a/chrome/browser/ui/views/certificate_selector.cc
+++ b/chrome/browser/ui/views/certificate_selector.cc
@@ -46,7 +46,7 @@ const int CertificateSelector::kTableViewHeight = 150;
class CertificateSelector::CertificateTableModel : public ui::TableModel {
public:
// |certs| and |provider_names| must have the same size.
- CertificateTableModel(const net::CertificateList& certs,
+ CertificateTableModel(const net::ClientCertIdentityList& certs,
const std::vector<std::string>& provider_names);
// ui::TableModel:
@@ -67,11 +67,11 @@ class CertificateSelector::CertificateTableModel : public ui::TableModel {
};
CertificateSelector::CertificateTableModel::CertificateTableModel(
- const net::CertificateList& certs,
+ const net::ClientCertIdentityList& certs,
const std::vector<std::string>& provider_names) {
DCHECK_EQ(certs.size(), provider_names.size());
for (size_t i = 0; i < certs.size(); i++) {
- net::X509Certificate* cert = certs[i].get();
+ net::X509Certificate* cert = certs[i]->certificate();
Row row;
row.subject = base::UTF8ToUTF16(cert->subject().GetDisplayName());
row.issuer = base::UTF8ToUTF16(cert->issuer().GetDisplayName());
@@ -114,7 +114,7 @@ void CertificateSelector::CertificateTableModel::SetObserver(
ui::TableModelObserver* observer) {}
CertificateSelector::CertificateSelector(
- const net::CertificateList& certificates,
+ net::ClientCertIdentityList certificates,
content::WebContents* web_contents)
: web_contents_(web_contents), table_(nullptr), view_cert_button_(nullptr) {
CHECK(web_contents_);
@@ -130,11 +130,13 @@ CertificateSelector::CertificateSelector(
extensions::ExtensionRegistryFactory::GetForBrowserContext(
web_contents->GetBrowserContext());
- for (const auto& cert : certificates) {
+ for (auto& cert : certificates) {
std::string provider_name;
bool has_extension = false;
std::string extension_id;
- if (service->LookUpCertificate(*cert, &has_extension, &extension_id)) {
+ // XXX UGH.
+ if (service->LookUpCertificate(*cert->certificate(), &has_extension,
+ &extension_id)) {
if (!has_extension) {
// This certificate was provided by an extension but isn't provided by
// any extension currently. Don't expose it to the user.
@@ -151,12 +153,12 @@ CertificateSelector::CertificateSelector(
show_provider_column_ = true;
} // Otherwise the certificate is provided by the platform.
- certificates_.push_back(cert);
+ certificates_.push_back(std::move(cert));
provider_names.push_back(provider_name);
}
#else
provider_names.assign(certificates.size(), std::string());
- certificates_ = certificates;
+ certificates_ = std::move(certificates);
#endif
model_.reset(new CertificateTableModel(certificates_, provider_names));
@@ -239,7 +241,7 @@ ui::TableModel* CertificateSelector::table_model_for_testing() const {
return model_.get();
}
-net::X509Certificate* CertificateSelector::GetSelectedCert() const {
+net::ClientCertIdentity* CertificateSelector::GetSelectedCert() const {
const int selected = table_->FirstSelectedRow();
if (selected < 0) // Nothing is selected in |table_|.
return nullptr;
@@ -277,11 +279,10 @@ ui::ModalType CertificateSelector::GetModalType() const {
void CertificateSelector::ButtonPressed(views::Button* sender,
const ui::Event& event) {
- if (sender == view_cert_button_) {
- net::X509Certificate* const cert = GetSelectedCert();
- if (cert)
- ShowCertificateViewer(web_contents_,
- web_contents_->GetTopLevelNativeWindow(), cert);
+ if (sender == view_cert_button_ && GetSelectedCert()) {
+ ShowCertificateViewer(web_contents_,
+ web_contents_->GetTopLevelNativeWindow(),
+ GetSelectedCert()->certificate());
}
}
« no previous file with comments | « chrome/browser/ui/views/certificate_selector.h ('k') | chrome/browser/ui/views/certificate_selector_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698