summaryrefslogtreecommitdiffstats
path: root/net/socket/ssl_client_socket_pool.cc
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 14:47:51 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-29 14:47:51 +0000
commitb076d6c95f54f59edf352c0d95a1dab61ca7bb31 (patch)
treea773eed4150bfc0054f980cc0ba73727a1385bdd /net/socket/ssl_client_socket_pool.cc
parent52fba6dfed28e9c66e89a9d80a06e4eee0787b94 (diff)
downloadchromium_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.cc32
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);
+ }
}
}