Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(734)

Side by Side Diff: chrome/browser/chromeos/certificate_provider/certificate_provider_service.cc

Issue 2094333002: Implementation for chrome.certificateProvider.requestPin/stopPinRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed review comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698