| 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());
|
| }
|
| }
|
|
|
|
|