diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-03 23:23:22 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-03 23:23:22 +0000 |
commit | 0912579b25f74d5b66c8adc0d3d8a7f805141e89 (patch) | |
tree | 132990c5d931488bb8e9d295376b65aea8b74013 /net/socket/ssl_host_info.cc | |
parent | aef0f68aeacca2b3771b06032b665b05c6979be7 (diff) | |
download | chromium_src-0912579b25f74d5b66c8adc0d3d8a7f805141e89.zip chromium_src-0912579b25f74d5b66c8adc0d3d8a7f805141e89.tar.gz chromium_src-0912579b25f74d5b66c8adc0d3d8a7f805141e89.tar.bz2 |
net: Make Snap Start check cert verification and add metrics
This CL causes Snap Start to only trigger if the certificate
verification has completed by the time we are ready to send out the
handshake message.
It also adds a couple of NetLog entries and histograms around the Snap
Start code.
BUG=none
TEST=none
http://codereview.chromium.org/4408001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64986 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/ssl_host_info.cc')
-rw-r--r-- | net/socket/ssl_host_info.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/socket/ssl_host_info.cc b/net/socket/ssl_host_info.cc index ce042de..b44a963 100644 --- a/net/socket/ssl_host_info.cc +++ b/net/socket/ssl_host_info.cc @@ -4,6 +4,7 @@ #include "net/socket/ssl_host_info.h" +#include "base/metrics/histogram.h" #include "base/string_piece.h" #include "net/base/cert_verifier.h" #include "net/base/ssl_config_service.h" @@ -110,6 +111,7 @@ bool SSLHostInfo::Parse(const std::string& data) { flags |= X509Certificate::VERIFY_REV_CHECKING_ENABLED; verifier_.reset(new CertVerifier); VLOG(1) << "Kicking off verification for " << hostname_; + verification_start_time_ = base::TimeTicks::Now(); if (verifier_->Verify(cert_.get(), hostname_, flags, &cert_verify_result_, callback_) == OK) { VerifyCallback(OK); @@ -156,6 +158,11 @@ int SSLHostInfo::WaitForCertVerification(CompletionCallback* callback) { } void SSLHostInfo::VerifyCallback(int rv) { + DCHECK(!verification_start_time_.is_null()); + base::TimeTicks now = base::TimeTicks::Now(); + const base::TimeDelta duration = now - verification_start_time(); + UMA_HISTOGRAM_TIMES("Net.SSLHostInfoVerificationTimeMs", duration); + VLOG(1) << "Verification took " << duration.InMilliseconds() << "ms"; cert_verification_complete_ = true; cert_verification_result_ = rv; if (cert_verification_callback_) { |