Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1126)

Unified Diff: net/socket/transport_client_socket_pool.cc

Issue 11428150: LoadTiming implementation in net, part 1. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Try upload again Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/socket/transport_client_socket_pool.cc
===================================================================
--- net/socket/transport_client_socket_pool.cc (revision 172981)
+++ net/socket/transport_client_socket_pool.cc (working copy)
@@ -163,6 +163,8 @@
int TransportConnectJob::DoResolveHost() {
next_state_ = STATE_RESOLVE_HOST_COMPLETE;
+ connect_timing().dns_start = base::TimeTicks::Now();
+
return resolver_.Resolve(
params_->destination(), &addresses_,
base::Bind(&TransportConnectJob::OnIOComplete, base::Unretained(this)),
@@ -170,7 +172,12 @@
}
int TransportConnectJob::DoResolveHostComplete(int result) {
- if (result == OK) {
+ connect_timing().dns_end = base::TimeTicks::Now();
+ // Overwrite connection start time, since for connections that do not go
+ // through proxies, |connect_start| should not include dns lookup time.
+ connect_timing().connect_start = connect_timing().dns_end;
+
+ if (result == OK) {
// Invoke callback, and abort if it fails.
if (!params_->host_resolution_callback().is_null())
result = params_->host_resolution_callback().Run(addresses_, net_log());
@@ -185,7 +192,6 @@
next_state_ = STATE_TRANSPORT_CONNECT_COMPLETE;
transport_socket_.reset(client_socket_factory_->CreateTransportClientSocket(
addresses_, net_log().net_log(), net_log().source()));
- connect_start_time_ = base::TimeTicks::Now();
int rv = transport_socket_->Connect(
base::Bind(&TransportConnectJob::OnIOComplete, base::Unretained(this)));
if (rv == ERR_IO_PENDING &&
@@ -201,7 +207,7 @@
int TransportConnectJob::DoTransportConnectComplete(int result) {
if (result == OK) {
bool is_ipv4 = addresses_.front().GetFamily() == ADDRESS_FAMILY_IPV4;
- DCHECK(connect_start_time_ != base::TimeTicks());
+ DCHECK(connect_timing().connect_start != base::TimeTicks());
eroman 2012/12/14 04:08:35 might want to test is_null() throughout for consis
mmenke 2012/12/14 13:36:12 Done.
DCHECK(start_time_ != base::TimeTicks());
base::TimeTicks now = base::TimeTicks::Now();
base::TimeDelta total_duration = now - start_time_;
@@ -212,7 +218,7 @@
base::TimeDelta::FromMinutes(10),
100);
- base::TimeDelta connect_duration = now - connect_start_time_;
+ base::TimeDelta connect_duration = now - connect_timing().connect_start;
UMA_HISTOGRAM_CUSTOM_TIMES("Net.TCP_Connection_Latency",
connect_duration,
base::TimeDelta::FromMilliseconds(1),

Powered by Google App Engine
This is Rietveld 408576698