summaryrefslogtreecommitdiffstats
path: root/net/socket/ssl_host_info.cc
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-03 23:23:22 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-03 23:23:22 +0000
commit0912579b25f74d5b66c8adc0d3d8a7f805141e89 (patch)
tree132990c5d931488bb8e9d295376b65aea8b74013 /net/socket/ssl_host_info.cc
parentaef0f68aeacca2b3771b06032b665b05c6979be7 (diff)
downloadchromium_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.cc7
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_) {