From ec012fe21457adfbf472f82d3b51480b7ac23a1e Mon Sep 17 00:00:00 2001 From: "rsleevi@chromium.org" Date: Wed, 19 Sep 2012 04:17:02 +0000 Subject: Make MultiThreadedCertVerifier receive a CertVerifyProc, rather than creating one Rather than creating an OS-specific CertVerifyProc, have it injected into the MultiThreadedCertVerifier directly. This allows callers to change the CertVerifyProc that is used. BUG=123666 Review URL: https://chromiumcodereview.appspot.com/10917309 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157504 0039d316-1c4b-4281-b951-d872f2087c98 --- net/base/cert_verifier.cc | 3 ++- net/base/multi_threaded_cert_verifier.cc | 9 +++------ net/base/multi_threaded_cert_verifier.h | 3 +-- net/base/multi_threaded_cert_verifier_unittest.cc | 4 +--- 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/net/base/cert_verifier.cc b/net/base/cert_verifier.cc index c86c97b..fd28f1d 100644 --- a/net/base/cert_verifier.cc +++ b/net/base/cert_verifier.cc @@ -4,12 +4,13 @@ #include "net/base/cert_verifier.h" +#include "net/base/cert_verify_proc.h" #include "net/base/multi_threaded_cert_verifier.h" namespace net { CertVerifier* CertVerifier::CreateDefault() { - return new MultiThreadedCertVerifier(); + return new MultiThreadedCertVerifier(CertVerifyProc::CreateDefault()); } } // namespace net diff --git a/net/base/multi_threaded_cert_verifier.cc b/net/base/multi_threaded_cert_verifier.cc index 3e8cf13..63d320e 100644 --- a/net/base/multi_threaded_cert_verifier.cc +++ b/net/base/multi_threaded_cert_verifier.cc @@ -376,12 +376,13 @@ class CertVerifierJob { const BoundNetLog net_log_; }; -MultiThreadedCertVerifier::MultiThreadedCertVerifier() +MultiThreadedCertVerifier::MultiThreadedCertVerifier( + CertVerifyProc* verify_proc) : cache_(kMaxCacheEntries), requests_(0), cache_hits_(0), inflight_joins_(0), - verify_proc_(CertVerifyProc::CreateDefault()) { + verify_proc_(verify_proc) { CertDatabase::GetInstance()->AddObserver(this); } @@ -510,8 +511,4 @@ void MultiThreadedCertVerifier::OnCertTrustChanged( ClearCache(); } -void MultiThreadedCertVerifier::SetCertVerifyProc(CertVerifyProc* verify_proc) { - verify_proc_ = verify_proc; -} - } // namespace net diff --git a/net/base/multi_threaded_cert_verifier.h b/net/base/multi_threaded_cert_verifier.h index e4c0653..b218370 100644 --- a/net/base/multi_threaded_cert_verifier.h +++ b/net/base/multi_threaded_cert_verifier.h @@ -34,7 +34,7 @@ class NET_EXPORT_PRIVATE MultiThreadedCertVerifier NON_EXPORTED_BASE(public base::NonThreadSafe), public CertDatabase::Observer { public: - MultiThreadedCertVerifier(); + explicit MultiThreadedCertVerifier(CertVerifyProc* verify_proc); // When the verifier is destroyed, all certificate verifications requests are // canceled, and their completion callbacks will not be called. @@ -143,7 +143,6 @@ class NET_EXPORT_PRIVATE MultiThreadedCertVerifier uint64 cache_hits() const { return cache_hits_; } uint64 requests() const { return requests_; } uint64 inflight_joins() const { return inflight_joins_; } - void SetCertVerifyProc(CertVerifyProc* verify_proc); // cache_ maps from a request to a cached result. CertVerifierCache cache_; diff --git a/net/base/multi_threaded_cert_verifier_unittest.cc b/net/base/multi_threaded_cert_verifier_unittest.cc index 7bf47a2..8946b66 100644 --- a/net/base/multi_threaded_cert_verifier_unittest.cc +++ b/net/base/multi_threaded_cert_verifier_unittest.cc @@ -49,9 +49,7 @@ class MockCertVerifyProc : public CertVerifyProc { class MultiThreadedCertVerifierTest : public ::testing::Test { public: - MultiThreadedCertVerifierTest() { - verifier_.SetCertVerifyProc(new MockCertVerifyProc()); - } + MultiThreadedCertVerifierTest() : verifier_(new MockCertVerifyProc()) {} virtual ~MultiThreadedCertVerifierTest() {} protected: -- cgit v1.1