diff options
author | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-24 08:09:14 +0000 |
---|---|---|
committer | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-24 08:09:14 +0000 |
commit | 57f6e74d4cd92cc5ea83c0b6d76898328ea764f1 (patch) | |
tree | c8d48deb2452de791fb73bb40ed9f5288da85aa8 /net/socket_stream/socket_stream.cc | |
parent | 85dd5dcae7e86f4c90f6d40fee497598761b891e (diff) | |
download | chromium_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.cc | 21 |
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_); } |