summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorerikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-18 20:42:55 +0000
committererikkay@google.com <erikkay@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-09-18 20:42:55 +0000
commit113ab13f317a212284c022771438705c6cba6227 (patch)
tree7c92495aa899a2cdf20be7819ef69b3d06a42533 /net
parent37cbdcc9964ad7b3af8a5420fdbaebe67d11a60c (diff)
downloadchromium_src-113ab13f317a212284c022771438705c6cba6227.zip
chromium_src-113ab13f317a212284c022771438705c6cba6227.tar.gz
chromium_src-113ab13f317a212284c022771438705c6cba6227.tar.bz2
* Change output of trace_event log to JSON to enable easier integration with visualization UI.
* Simple (manual) trace visualizer with some sample data. * a few more trace events * add process_util function for current process handle Review URL: http://codereview.chromium.org/3086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2381 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/tcp_client_socket.cc10
-rw-r--r--net/http/http_network_transaction.cc19
2 files changed, 25 insertions, 4 deletions
diff --git a/net/base/tcp_client_socket.cc b/net/base/tcp_client_socket.cc
index d766503..185902e 100644
--- a/net/base/tcp_client_socket.cc
+++ b/net/base/tcp_client_socket.cc
@@ -157,6 +157,7 @@ int TCPClientSocket::Read(char* buf,
buffer_.len = buf_len;
buffer_.buf = buf;
+ TRACE_EVENT_BEGIN("socket.read", this, "");
// TODO(wtc): Remove the CHECKs after enough testing.
CHECK(WaitForSingleObject(overlapped_.hEvent, 0) == WAIT_TIMEOUT);
DWORD num, flags = 0;
@@ -165,6 +166,7 @@ int TCPClientSocket::Read(char* buf,
CHECK(WaitForSingleObject(overlapped_.hEvent, 0) == WAIT_OBJECT_0);
BOOL ok = WSAResetEvent(overlapped_.hEvent);
CHECK(ok);
+ TRACE_EVENT_END("socket.read", this, StringPrintf("%d bytes", num));
return static_cast<int>(num);
}
int err = WSAGetLastError();
@@ -187,6 +189,7 @@ int TCPClientSocket::Write(const char* buf,
buffer_.len = buf_len;
buffer_.buf = const_cast<char*>(buf);
+ TRACE_EVENT_BEGIN("socket.write", this, "");
// TODO(wtc): Remove the CHECKs after enough testing.
CHECK(WaitForSingleObject(overlapped_.hEvent, 0) == WAIT_TIMEOUT);
DWORD num;
@@ -195,6 +198,7 @@ int TCPClientSocket::Write(const char* buf,
CHECK(WaitForSingleObject(overlapped_.hEvent, 0) == WAIT_OBJECT_0);
BOOL ok = WSAResetEvent(overlapped_.hEvent);
CHECK(ok);
+ TRACE_EVENT_END("socket.write", this, StringPrintf("%d bytes", num));
return static_cast<int>(num);
}
int err = WSAGetLastError();
@@ -272,11 +276,9 @@ void TCPClientSocket::DidCompleteIO() {
socket_, &overlapped_, &num_bytes, FALSE, &flags);
WSAResetEvent(overlapped_.hEvent);
if (wait_state_ == WAITING_READ) {
- TRACE_EVENT_INSTANT("socket.read", this,
- StringPrintf("%d bytes", num_bytes));
+ TRACE_EVENT_END("socket.read", this, StringPrintf("%d bytes", num_bytes));
} else {
- TRACE_EVENT_INSTANT("socket.write", this,
- StringPrintf("%d bytes", num_bytes));
+ TRACE_EVENT_END("socket.write", this, StringPrintf("%d bytes", num_bytes));
}
wait_state_ = NOT_WAITING;
DoCallback(ok ? num_bytes : MapWinsockError(WSAGetLastError()));
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index df9fb76..08748af 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -5,6 +5,7 @@
#include "net/http/http_network_transaction.h"
#include "base/string_util.h"
+#include "base/trace_event.h"
#include "net/base/client_socket_factory.h"
#include "net/base/host_resolver.h"
#include "net/base/load_flags.h"
@@ -254,66 +255,84 @@ int HttpNetworkTransaction::DoLoop(int result) {
switch (state) {
case STATE_RESOLVE_PROXY:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.resolve_proxy", request_, request_->url.spec());
rv = DoResolveProxy();
break;
case STATE_RESOLVE_PROXY_COMPLETE:
rv = DoResolveProxyComplete(rv);
+ TRACE_EVENT_END("http.resolve_proxy", request_, request_->url.spec());
break;
case STATE_INIT_CONNECTION:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.init_conn", request_, request_->url.spec());
rv = DoInitConnection();
break;
case STATE_INIT_CONNECTION_COMPLETE:
rv = DoInitConnectionComplete(rv);
+ TRACE_EVENT_END("http.init_conn", request_, request_->url.spec());
break;
case STATE_RESOLVE_HOST:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.resolve_host", request_, request_->url.spec());
rv = DoResolveHost();
break;
case STATE_RESOLVE_HOST_COMPLETE:
rv = DoResolveHostComplete(rv);
+ TRACE_EVENT_END("http.resolve_host", request_, request_->url.spec());
break;
case STATE_CONNECT:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.connect", request_, request_->url.spec());
rv = DoConnect();
break;
case STATE_CONNECT_COMPLETE:
rv = DoConnectComplete(rv);
+ TRACE_EVENT_END("http.connect", request_, request_->url.spec());
break;
case STATE_SSL_CONNECT_OVER_TUNNEL:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.ssl_tunnel", request_, request_->url.spec());
rv = DoSSLConnectOverTunnel();
break;
case STATE_SSL_CONNECT_OVER_TUNNEL_COMPLETE:
rv = DoSSLConnectOverTunnelComplete(rv);
+ TRACE_EVENT_END("http.ssl_tunnel", request_, request_->url.spec());
break;
case STATE_WRITE_HEADERS:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.write_headers", request_, request_->url.spec());
rv = DoWriteHeaders();
break;
case STATE_WRITE_HEADERS_COMPLETE:
rv = DoWriteHeadersComplete(rv);
+ TRACE_EVENT_END("http.write_headers", request_, request_->url.spec());
break;
case STATE_WRITE_BODY:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.write_body", request_, request_->url.spec());
rv = DoWriteBody();
break;
case STATE_WRITE_BODY_COMPLETE:
rv = DoWriteBodyComplete(rv);
+ TRACE_EVENT_END("http.write_body", request_, request_->url.spec());
break;
case STATE_READ_HEADERS:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.read_headers", request_, request_->url.spec());
rv = DoReadHeaders();
break;
case STATE_READ_HEADERS_COMPLETE:
rv = DoReadHeadersComplete(rv);
+ TRACE_EVENT_END("http.read_headers", request_, request_->url.spec());
break;
case STATE_READ_BODY:
DCHECK(rv == OK);
+ TRACE_EVENT_BEGIN("http.read_body", request_, request_->url.spec());
rv = DoReadBody();
break;
case STATE_READ_BODY_COMPLETE:
rv = DoReadBodyComplete(rv);
+ TRACE_EVENT_END("http.read_body", request_, request_->url.spec());
break;
default:
NOTREACHED() << "bad state";