Index: chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
diff --git a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
index 6a8c9aee3de1a0d14baa1e314742381c62efe870..3c6cf433e04bdfe0cc4841793fa8ff1a2745765d 100644 |
--- a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
+++ b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
@@ -243,6 +243,7 @@ |
const bool use_system_key_slot_; |
scoped_refptr<net::SSLCertRequestInfo> cert_request_info_; |
std::unique_ptr<net::ClientCertStore> cert_store_; |
+ std::unique_ptr<net::CertificateList> certs_; |
private: |
// Must be called on origin thread, therefore use CallBack(). |
@@ -549,11 +550,9 @@ |
// of net::CertificateList and calls back. Used by |
// SelectCertificatesOnIOThread(). |
void DidSelectCertificatesOnIOThread( |
- std::unique_ptr<SelectCertificatesState> state, |
- net::CertificateList certs) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- state->CallBack(FROM_HERE, |
- base::MakeUnique<net::CertificateList>(std::move(certs)), |
+ std::unique_ptr<SelectCertificatesState> state) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ state->CallBack(FROM_HERE, std::move(state->certs_), |
std::string() /* no error */); |
} |
@@ -568,9 +567,11 @@ |
state->username_hash_), |
ClientCertStoreChromeOS::PasswordDelegateFactory())); |
+ state->certs_.reset(new net::CertificateList); |
+ |
SelectCertificatesState* state_ptr = state.get(); |
state_ptr->cert_store_->GetClientCerts( |
- *state_ptr->cert_request_info_, |
+ *state_ptr->cert_request_info_, state_ptr->certs_.get(), |
base::Bind(&DidSelectCertificatesOnIOThread, base::Passed(&state))); |
} |