OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" | 5 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 } | 289 } |
290 | 290 |
291 void CertificateProviderService::SSLPrivateKey::DidSignDigest( | 291 void CertificateProviderService::SSLPrivateKey::DidSignDigest( |
292 const SignCallback& callback, | 292 const SignCallback& callback, |
293 net::Error error, | 293 net::Error error, |
294 const std::vector<uint8_t>& signature) { | 294 const std::vector<uint8_t>& signature) { |
295 DCHECK(thread_checker_.CalledOnValidThread()); | 295 DCHECK(thread_checker_.CalledOnValidThread()); |
296 callback.Run(error, signature); | 296 callback.Run(error, signature); |
297 } | 297 } |
298 | 298 |
299 CertificateProviderService::CertificateProviderService() | 299 CertificateProviderService::CertificateProviderService() : weak_factory_(this) { |
300 : weak_factory_(this) {} | 300 pin_dialog_manager_.reset(new PinDialogManager()); |
| 301 } |
301 | 302 |
302 CertificateProviderService::~CertificateProviderService() { | 303 CertificateProviderService::~CertificateProviderService() { |
303 DCHECK(thread_checker_.CalledOnValidThread()); | 304 DCHECK(thread_checker_.CalledOnValidThread()); |
304 | 305 |
305 // ClientKeyStore serializes access to |cert_key_provider_|. | 306 // ClientKeyStore serializes access to |cert_key_provider_|. |
306 // Once RemoveProvider() returns, it is guaranteed that there are no more | 307 // Once RemoveProvider() returns, it is guaranteed that there are no more |
307 // accesses to |cert_key_provider_| in flight and no references to | 308 // accesses to |cert_key_provider_| in flight and no references to |
308 // |cert_key_provider_| are remaining. This service will hold the last | 309 // |cert_key_provider_| are remaining. This service will hold the last |
309 // reference to |cert_key_provider_|. | 310 // reference to |cert_key_provider_|. |
310 net::ClientKeyStore::GetInstance()->RemoveProvider(cert_key_provider_.get()); | 311 net::ClientKeyStore::GetInstance()->RemoveProvider(cert_key_provider_.get()); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
393 base::Callback<void(const net::CertificateList&)> callback; | 394 base::Callback<void(const net::CertificateList&)> callback; |
394 certificate_requests_.RemoveRequest(cert_request_id, &certificates, | 395 certificate_requests_.RemoveRequest(cert_request_id, &certificates, |
395 &callback); | 396 &callback); |
396 UpdateCertificatesAndRun(certificates, callback); | 397 UpdateCertificatesAndRun(certificates, callback); |
397 } | 398 } |
398 | 399 |
399 certificate_map_.RemoveExtension(extension_id); | 400 certificate_map_.RemoveExtension(extension_id); |
400 | 401 |
401 for (auto callback : sign_requests_.RemoveAllRequests(extension_id)) | 402 for (auto callback : sign_requests_.RemoveAllRequests(extension_id)) |
402 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); | 403 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); |
| 404 |
| 405 pin_dialog_manager_->ExtensionUnloaded(extension_id); |
403 } | 406 } |
404 | 407 |
405 void CertificateProviderService::GetCertificatesFromExtensions( | 408 void CertificateProviderService::GetCertificatesFromExtensions( |
406 const base::Callback<void(const net::CertificateList&)>& callback) { | 409 const base::Callback<void(const net::CertificateList&)>& callback) { |
407 DCHECK(thread_checker_.CalledOnValidThread()); | 410 DCHECK(thread_checker_.CalledOnValidThread()); |
408 | 411 |
409 const std::vector<std::string> provider_extensions( | 412 const std::vector<std::string> provider_extensions( |
410 delegate_->CertificateProviderExtensions()); | 413 delegate_->CertificateProviderExtensions()); |
411 | 414 |
412 if (provider_extensions.empty()) { | 415 if (provider_extensions.empty()) { |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 const int sign_request_id = sign_requests_.AddRequest(extension_id, callback); | 473 const int sign_request_id = sign_requests_.AddRequest(extension_id, callback); |
471 if (!delegate_->DispatchSignRequestToExtension(extension_id, sign_request_id, | 474 if (!delegate_->DispatchSignRequestToExtension(extension_id, sign_request_id, |
472 hash, certificate, digest)) { | 475 hash, certificate, digest)) { |
473 sign_requests_.RemoveRequest(extension_id, sign_request_id, | 476 sign_requests_.RemoveRequest(extension_id, sign_request_id, |
474 nullptr /* callback */); | 477 nullptr /* callback */); |
475 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); | 478 callback.Run(net::ERR_FAILED, std::vector<uint8_t>()); |
476 } | 479 } |
477 } | 480 } |
478 | 481 |
479 } // namespace chromeos | 482 } // namespace chromeos |
OLD | NEW |