| Index: net/socket/transport_client_socket_pool.cc
|
| diff --git a/net/socket/transport_client_socket_pool.cc b/net/socket/transport_client_socket_pool.cc
|
| index 6da3b45c43f2940801f40bbcd90ac9c61cfcd375..ec56dcba65cfa0ebb59101cb0b29f00f5c35bb87 100644
|
| --- a/net/socket/transport_client_socket_pool.cc
|
| +++ b/net/socket/transport_client_socket_pool.cc
|
| @@ -96,7 +96,7 @@ TransportConnectJob::TransportConnectJob(
|
| client_socket_factory_(client_socket_factory),
|
| resolver_(host_resolver),
|
| next_state_(STATE_NONE),
|
| - less_than_20ms_since_connect_(true) {
|
| + interval_between_connects_(CONNECT_INTERVAL_GT_20MS) {
|
| }
|
|
|
| TransportConnectJob::~TransportConnectJob() {
|
| @@ -204,11 +204,16 @@ int TransportConnectJob::DoTransportConnect() {
|
| last_connect_time = g_last_connect_time.Get();
|
| *g_last_connect_time.Pointer() = now;
|
| }
|
| - if (last_connect_time.is_null() ||
|
| - (now - last_connect_time).InMilliseconds() < 20) {
|
| - less_than_20ms_since_connect_ = true;
|
| + if (last_connect_time.is_null()) {
|
| + interval_between_connects_ = CONNECT_INTERVAL_GT_20MS;
|
| } else {
|
| - less_than_20ms_since_connect_ = false;
|
| + int64 interval = (now - last_connect_time).InMilliseconds();
|
| + if (interval <= 10)
|
| + interval_between_connects_ = CONNECT_INTERVAL_LE_10MS;
|
| + else if (interval <= 20)
|
| + interval_between_connects_ = CONNECT_INTERVAL_LE_20MS;
|
| + else
|
| + interval_between_connects_ = CONNECT_INTERVAL_GT_20MS;
|
| }
|
|
|
| next_state_ = STATE_TRANSPORT_CONNECT_COMPLETE;
|
| @@ -247,20 +252,34 @@ int TransportConnectJob::DoTransportConnectComplete(int result) {
|
| base::TimeDelta::FromMinutes(10),
|
| 100);
|
|
|
| - if (less_than_20ms_since_connect_) {
|
| - UMA_HISTOGRAM_CUSTOM_TIMES(
|
| - "Net.TCP_Connection_Latency_Interval_20ms_Minus",
|
| - connect_duration,
|
| - base::TimeDelta::FromMilliseconds(1),
|
| - base::TimeDelta::FromMinutes(10),
|
| - 100);
|
| - } else {
|
| - UMA_HISTOGRAM_CUSTOM_TIMES(
|
| - "Net.TCP_Connection_Latency_Interval_20ms_Plus",
|
| - connect_duration,
|
| - base::TimeDelta::FromMilliseconds(1),
|
| - base::TimeDelta::FromMinutes(10),
|
| - 100);
|
| + switch (interval_between_connects_) {
|
| + case CONNECT_INTERVAL_LE_10MS:
|
| + UMA_HISTOGRAM_CUSTOM_TIMES(
|
| + "Net.TCP_Connection_Latency_Interval_LessThanOrEqual_10ms",
|
| + connect_duration,
|
| + base::TimeDelta::FromMilliseconds(1),
|
| + base::TimeDelta::FromMinutes(10),
|
| + 100);
|
| + break;
|
| + case CONNECT_INTERVAL_LE_20MS:
|
| + UMA_HISTOGRAM_CUSTOM_TIMES(
|
| + "Net.TCP_Connection_Latency_Interval_LessThanOrEqual_20ms",
|
| + connect_duration,
|
| + base::TimeDelta::FromMilliseconds(1),
|
| + base::TimeDelta::FromMinutes(10),
|
| + 100);
|
| + break;
|
| + case CONNECT_INTERVAL_GT_20MS:
|
| + UMA_HISTOGRAM_CUSTOM_TIMES(
|
| + "Net.TCP_Connection_Latency_Interval_GreaterThan_20ms",
|
| + connect_duration,
|
| + base::TimeDelta::FromMilliseconds(1),
|
| + base::TimeDelta::FromMinutes(10),
|
| + 100);
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + break;
|
| }
|
|
|
| if (is_ipv4) {
|
|
|