| Index: chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc
|
| diff --git a/chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc b/chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc
|
| index ef0081b23fcaf8bc8614c1a73b441a2b0b9705aa..d45dba602aa977e1e0f9a43c4986bc92853fa5a7 100644
|
| --- a/chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc
|
| +++ b/chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc
|
| @@ -52,8 +52,9 @@ class CertificateProviderService::CertKeyProviderImpl
|
| certificate_provider::ThreadSafeCertificateMap* certificate_map);
|
| ~CertKeyProviderImpl() override;
|
|
|
| - bool GetCertificateKey(const net::X509Certificate& cert,
|
| - scoped_ptr<net::SSLPrivateKey>* private_key) override;
|
| + bool GetCertificateKey(
|
| + const net::X509Certificate& cert,
|
| + scoped_refptr<net::SSLPrivateKey>* private_key) override;
|
|
|
| private:
|
| const scoped_refptr<base::SequencedTaskRunner> service_task_runner_;
|
| @@ -104,7 +105,6 @@ class CertificateProviderService::SSLPrivateKey : public net::SSLPrivateKey {
|
| const CertificateInfo& cert_info,
|
| const scoped_refptr<base::SequencedTaskRunner>& service_task_runner,
|
| const base::WeakPtr<CertificateProviderService>& service);
|
| - ~SSLPrivateKey() override;
|
|
|
| // net::SSLPrivateKey:
|
| Type GetType() override;
|
| @@ -115,6 +115,8 @@ class CertificateProviderService::SSLPrivateKey : public net::SSLPrivateKey {
|
| const SignCallback& callback) override;
|
|
|
| private:
|
| + ~SSLPrivateKey() override;
|
| +
|
| static void SignDigestOnServiceTaskRunner(
|
| const base::WeakPtr<CertificateProviderService>& service,
|
| const std::string& extension_id,
|
| @@ -150,7 +152,7 @@ CertificateProviderService::CertKeyProviderImpl::~CertKeyProviderImpl() {}
|
|
|
| bool CertificateProviderService::CertKeyProviderImpl::GetCertificateKey(
|
| const net::X509Certificate& cert,
|
| - scoped_ptr<net::SSLPrivateKey>* private_key) {
|
| + scoped_refptr<net::SSLPrivateKey>* private_key) {
|
| bool is_currently_provided = false;
|
| CertificateInfo info;
|
| std::string extension_id;
|
| @@ -159,8 +161,10 @@ bool CertificateProviderService::CertKeyProviderImpl::GetCertificateKey(
|
| if (!is_currently_provided)
|
| return false;
|
|
|
| - private_key->reset(
|
| - new SSLPrivateKey(extension_id, info, service_task_runner_, service_));
|
| + scoped_refptr<net::SSLPrivateKey> new_key =
|
| + new SSLPrivateKey(extension_id, info, service_task_runner_, service_);
|
| + private_key->swap(new_key);
|
| +
|
| return true;
|
| }
|
|
|
|
|