| Index: chromeos/cert_loader.cc
|
| diff --git a/chromeos/cert_loader.cc b/chromeos/cert_loader.cc
|
| index 23fb3c74f95b484f006255b913fed0aec320830f..7dc0b554268360bb9e280f5223362c450edca62f 100644
|
| --- a/chromeos/cert_loader.cc
|
| +++ b/chromeos/cert_loader.cc
|
| @@ -8,7 +8,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/location.h"
|
| -#include "base/sequenced_task_runner.h"
|
| +#include "base/message_loop/message_loop_proxy.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/task_runner_util.h"
|
| #include "base/threading/worker_pool.h"
|
| @@ -19,16 +19,6 @@
|
|
|
| namespace chromeos {
|
|
|
| -namespace {
|
| -
|
| -// Loads certificates from |cert_database| into |cert_list|.
|
| -void LoadNSSCertificates(net::NSSCertDatabase* cert_database,
|
| - net::CertificateList* cert_list) {
|
| - cert_database->ListCerts(cert_list);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| static CertLoader* g_cert_loader = NULL;
|
|
|
| // static
|
| @@ -61,6 +51,7 @@ CertLoader::CertLoader()
|
| certificates_update_running_(false),
|
| database_(NULL),
|
| force_hardware_backed_for_test_(false),
|
| + cert_list_(new net::CertificateList),
|
| weak_factory_(this) {
|
| }
|
|
|
| @@ -84,11 +75,6 @@ void CertLoader::StartWithNSSDB(net::NSSCertDatabase* database) {
|
| LoadCertificates();
|
| }
|
|
|
| -void CertLoader::SetSlowTaskRunnerForTest(
|
| - const scoped_refptr<base::TaskRunner>& task_runner) {
|
| - slow_task_runner_for_test_ = task_runner;
|
| -}
|
| -
|
| void CertLoader::AddObserver(CertLoader::Observer* observer) {
|
| observers_.AddObserver(observer);
|
| }
|
| @@ -157,37 +143,21 @@ void CertLoader::LoadCertificates() {
|
| return;
|
| }
|
|
|
| - net::CertificateList* cert_list = new net::CertificateList;
|
| certificates_update_running_ = true;
|
| certificates_update_required_ = false;
|
|
|
| - base::TaskRunner* task_runner = slow_task_runner_for_test_.get();
|
| - if (!task_runner)
|
| - task_runner = base::WorkerPool::GetTaskRunner(true /* task is slow */);
|
| - task_runner->PostTaskAndReply(
|
| - FROM_HERE,
|
| - base::Bind(LoadNSSCertificates,
|
| - // Create a copy of the database so it can be used on the
|
| - // worker pool.
|
| - // TODO(tbarzic): Make net::NSSCertDatabase::ListCerts async
|
| - // and change it to do the certificate listing on worker
|
| - // pool.
|
| - base::Owned(new net::NSSCertDatabaseChromeOS(
|
| - database_->GetPublicSlot(),
|
| - database_->GetPrivateSlot())),
|
| - cert_list),
|
| - base::Bind(&CertLoader::UpdateCertificates,
|
| - weak_factory_.GetWeakPtr(),
|
| - base::Owned(cert_list)));
|
| -}
|
| -
|
| -void CertLoader::UpdateCertificates(net::CertificateList* cert_list) {
|
| + database_->ListCerts(
|
| + base::Bind(&CertLoader::UpdateCertificates, weak_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void CertLoader::UpdateCertificates(
|
| + scoped_ptr<net::CertificateList> cert_list) {
|
| CHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(certificates_update_running_);
|
| VLOG(1) << "UpdateCertificates: " << cert_list->size();
|
|
|
| // Ignore any existing certificates.
|
| - cert_list_.swap(*cert_list);
|
| + cert_list_ = cert_list.Pass();
|
|
|
| bool initial_load = !certificates_loaded_;
|
| certificates_loaded_ = true;
|
| @@ -200,7 +170,7 @@ void CertLoader::UpdateCertificates(net::CertificateList* cert_list) {
|
|
|
| void CertLoader::NotifyCertificatesLoaded(bool initial_load) {
|
| FOR_EACH_OBSERVER(Observer, observers_,
|
| - OnCertificatesLoaded(cert_list_, initial_load));
|
| + OnCertificatesLoaded(*cert_list_, initial_load));
|
| }
|
|
|
| void CertLoader::OnCACertChanged(const net::X509Certificate* cert) {
|
|
|