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

Unified Diff: chromeos/cert_loader.cc

Issue 144423007: Make NSSCertDatabase::ListCerts work async on a worker thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: added bug # Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chromeos/cert_loader.cc
diff --git a/chromeos/cert_loader.cc b/chromeos/cert_loader.cc
index 23fb3c74f95b484f006255b913fed0aec320830f..0cd74fced83eaf44e9e558dbc3ad04ce6b481668 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
@@ -84,11 +74,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,31 +142,15 @@ 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()));
stevenjb 2014/02/04 22:28:42 nit: align
tbarzic 2014/02/04 23:12:38 Done.
+}
+
+void CertLoader::UpdateCertificates(
+ scoped_ptr<net::CertificateList> cert_list) {
CHECK(thread_checker_.CalledOnValidThread());
DCHECK(certificates_update_running_);
VLOG(1) << "UpdateCertificates: " << cert_list->size();

Powered by Google App Engine
This is Rietveld 408576698