summaryrefslogtreecommitdiffstats
path: root/net/socket_stream/socket_stream.cc
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-24 08:09:14 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-24 08:09:14 +0000
commit57f6e74d4cd92cc5ea83c0b6d76898328ea764f1 (patch)
treec8d48deb2452de791fb73bb40ed9f5288da85aa8 /net/socket_stream/socket_stream.cc
parent85dd5dcae7e86f4c90f6d40fee497598761b891e (diff)
downloadchromium_src-57f6e74d4cd92cc5ea83c0b6d76898328ea764f1.zip
chromium_src-57f6e74d4cd92cc5ea83c0b6d76898328ea764f1.tar.gz
chromium_src-57f6e74d4cd92cc5ea83c0b6d76898328ea764f1.tar.bz2
Update SocketStreamMetrics to support new metrics on protocol switch.
This change also include refactoring on SocketStreamMetrics. BUG=42320 TEST=net_unittests --gtest_filter=SocketStream\* Review URL: http://codereview.chromium.org/7191014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90343 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket_stream/socket_stream.cc')
-rw-r--r--net/socket_stream/socket_stream.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc
index 5915ba4..b49a6a1 100644
--- a/net/socket_stream/socket_stream.cc
+++ b/net/socket_stream/socket_stream.cc
@@ -546,13 +546,18 @@ int SocketStream::DoResolveHost() {
int SocketStream::DoResolveHostComplete(int result) {
if (result == OK && delegate_) {
- next_state_ = STATE_TCP_CONNECT;
result = delegate_->OnStartOpenConnection(this, &io_callback_);
- if (result == ERR_IO_PENDING)
- metrics_->OnWaitConnection();
- else if (result == ERR_PROTOCOL_SWITCHED)
- // TODO(toyoshim): Add metrics events for protocol switch.
+ if (result == ERR_PROTOCOL_SWITCHED) {
next_state_ = STATE_CLOSE;
+ metrics_->OnCountWireProtocolType(
+ SocketStreamMetrics::WIRE_PROTOCOL_SPDY);
+ } else {
+ next_state_ = STATE_TCP_CONNECT;
+ metrics_->OnCountWireProtocolType(
+ SocketStreamMetrics::WIRE_PROTOCOL_WEBSOCKET);
+ if (result == ERR_IO_PENDING)
+ metrics_->OnWaitConnection();
+ }
} else {
next_state_ = STATE_CLOSE;
}
@@ -603,7 +608,7 @@ int SocketStream::DoWriteTunnelHeaders() {
next_state_ = STATE_WRITE_TUNNEL_HEADERS_COMPLETE;
if (!tunnel_request_headers_.get()) {
- metrics_->OnTunnelProxy();
+ metrics_->OnCountConnectionType(SocketStreamMetrics::TUNNEL_CONNECTION);
tunnel_request_headers_ = new RequestHeaders();
tunnel_request_headers_bytes_sent_ = 0;
}
@@ -801,7 +806,7 @@ int SocketStream::DoSOCKSConnect() {
else
s = new SOCKSClientSocket(s, req_info, host_resolver_);
socket_.reset(s);
- metrics_->OnSOCKSProxy();
+ metrics_->OnCountConnectionType(SocketStreamMetrics::SOCKS_CONNECTION);
return socket_->Connect(&io_callback_);
}
@@ -828,7 +833,7 @@ int SocketStream::DoSSLConnect() {
NULL /* ssl_host_info */,
cert_verifier_));
next_state_ = STATE_SSL_CONNECT_COMPLETE;
- metrics_->OnSSLConnection();
+ metrics_->OnCountConnectionType(SocketStreamMetrics::SSL_CONNECTION);
return socket_->Connect(&io_callback_);
}