diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 14:47:51 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 14:47:51 +0000 |
commit | b076d6c95f54f59edf352c0d95a1dab61ca7bb31 (patch) | |
tree | a773eed4150bfc0054f980cc0ba73727a1385bdd /net/socket/ssl_client_socket_pool.cc | |
parent | 52fba6dfed28e9c66e89a9d80a06e4eee0787b94 (diff) | |
download | chromium_src-b076d6c95f54f59edf352c0d95a1dab61ca7bb31.zip chromium_src-b076d6c95f54f59edf352c0d95a1dab61ca7bb31.tar.gz chromium_src-b076d6c95f54f59edf352c0d95a1dab61ca7bb31.tar.bz2 |
net: measure the latency difference of resume handshakes.
With False Start, we hope that resume and non-resume handshakes take the same
amount of time. But non-resume handshakes involve sending the certificate chain
to the client and this has a latency impact, although we don't know how high.
There's also a danger that revocation checks will be confounded into this data:
a full handshake is more likely to perform a revocation check. We'll have to
look at the data and, possible, reintroduce the revocation checking field trial
to address this.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7218013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90950 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/ssl_client_socket_pool.cc')
-rw-r--r-- | net/socket/ssl_client_socket_pool.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/net/socket/ssl_client_socket_pool.cc b/net/socket/ssl_client_socket_pool.cc index aea8887..06a27f4 100644 --- a/net/socket/ssl_client_socket_pool.cc +++ b/net/socket/ssl_client_socket_pool.cc @@ -338,6 +338,23 @@ int SSLConnectJob::DoSSLConnectComplete(int result) { base::TimeDelta::FromMinutes(10), 100); + SSLInfo ssl_info; + ssl_socket_->GetSSLInfo(&ssl_info); + + if (ssl_info.handshake_type == SSLInfo::HANDSHAKE_RESUME) { + UMA_HISTOGRAM_CUSTOM_TIMES("Net.SSL_Connection_Latency_Resume_Handshake", + connect_duration, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromMinutes(1), + 100); + } else if (ssl_info.handshake_type == SSLInfo::HANDSHAKE_FULL) { + UMA_HISTOGRAM_CUSTOM_TIMES("Net.SSL_Connection_Latency_Full_Handshake", + connect_duration, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromMinutes(1), + 100); + } + const std::string& host = params_->host_and_port().host(); bool is_google = host == "google.com" || (host.size() > 11 && @@ -348,6 +365,21 @@ int SSLConnectJob::DoSSLConnectComplete(int result) { base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), 100); + if (ssl_info.handshake_type == SSLInfo::HANDSHAKE_RESUME) { + UMA_HISTOGRAM_CUSTOM_TIMES("Net.SSL_Connection_Latency_Google_" + "Resume_Handshake", + connect_duration, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromMinutes(1), + 100); + } else if (ssl_info.handshake_type == SSLInfo::HANDSHAKE_FULL) { + UMA_HISTOGRAM_CUSTOM_TIMES("Net.SSL_Connection_Latency_Google_" + "Full_Handshake", + connect_duration, + base::TimeDelta::FromMilliseconds(1), + base::TimeDelta::FromMinutes(1), + 100); + } } } |