Chromium Code Reviews| 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..058f58f770d28e7acff4b2b21a0f39d23c66da76 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); |
|
davidben
2015/10/13 20:32:15
private_key = new SSLPrivateKey(...)
svaldez
2015/10/14 15:06:18
Done.
|
| + |
| return true; |
| } |
| @@ -218,10 +222,6 @@ CertificateProviderService::SSLPrivateKey::SSLPrivateKey( |
| thread_checker_.DetachFromThread(); |
| } |
| -CertificateProviderService::SSLPrivateKey::~SSLPrivateKey() { |
| - DCHECK(thread_checker_.CalledOnValidThread()); |
| -} |
| - |
| CertificateProviderService::SSLPrivateKey::Type |
| CertificateProviderService::SSLPrivateKey::GetType() { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| @@ -278,6 +278,10 @@ void CertificateProviderService::SSLPrivateKey::SignDigest( |
| hash, input.as_string(), bound_callback)); |
| } |
| +CertificateProviderService::SSLPrivateKey::~SSLPrivateKey() { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| +} |
| + |
| void CertificateProviderService::SSLPrivateKey::DidSignDigest( |
| const SignCallback& callback, |
| net::Error error, |