Chromium Code Reviews| 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), |