| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
| 8 #include "base/scoped_ptr.h" | 8 #include "base/scoped_ptr.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/field_trial.h" | 10 #include "base/field_trial.h" |
| (...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1150 !FieldTrial::MakeName("", "SocketLateBinding").empty(); | 1150 !FieldTrial::MakeName("", "SocketLateBinding").empty(); |
| 1151 | 1151 |
| 1152 if (handle.reuse_type() == ClientSocketHandle::UNUSED) { | 1152 if (handle.reuse_type() == ClientSocketHandle::UNUSED) { |
| 1153 UMA_HISTOGRAM_CLIPPED_TIMES( | 1153 UMA_HISTOGRAM_CLIPPED_TIMES( |
| 1154 "Net.Dns_Resolution_And_TCP_Connection_Latency", | 1154 "Net.Dns_Resolution_And_TCP_Connection_Latency", |
| 1155 time_to_obtain_connected_socket, | 1155 time_to_obtain_connected_socket, |
| 1156 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), | 1156 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), |
| 1157 100); | 1157 100); |
| 1158 } | 1158 } |
| 1159 | 1159 |
| 1160 static scoped_refptr<Histogram> tcp_socket_type_counter = | 1160 UMA_HISTOGRAM_ENUMERATION("Net.TCPSocketType", handle.reuse_type(), |
| 1161 LinearHistogram::LinearHistogramFactoryGet( | 1161 ClientSocketHandle::NUM_TYPES); |
| 1162 "Net.TCPSocketType", | |
| 1163 1, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | |
| 1164 tcp_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); | |
| 1165 tcp_socket_type_counter->Add(handle.reuse_type()); | |
| 1166 | 1162 |
| 1167 if (use_late_binding_histogram) { | 1163 if (use_late_binding_histogram) { |
| 1168 static scoped_refptr<Histogram> tcp_socket_type_counter2 = | 1164 UMA_HISTOGRAM_ENUMERATION( |
| 1169 LinearHistogram::LinearHistogramFactoryGet( | 1165 FieldTrial::MakeName("Net.TCPSocketType", "SocketLateBinding"), |
| 1170 FieldTrial::MakeName("Net.TCPSocketType", | 1166 handle.reuse_type(), ClientSocketHandle::NUM_TYPES); |
| 1171 "SocketLateBinding").data(), | |
| 1172 1, ClientSocketHandle::NUM_TYPES, | |
| 1173 ClientSocketHandle::NUM_TYPES + 1); | |
| 1174 tcp_socket_type_counter2->SetFlags(kUmaTargetedHistogramFlag); | |
| 1175 tcp_socket_type_counter2->Add(handle.reuse_type()); | |
| 1176 } | 1167 } |
| 1177 | 1168 |
| 1178 UMA_HISTOGRAM_CLIPPED_TIMES( | 1169 UMA_HISTOGRAM_CLIPPED_TIMES( |
| 1179 "Net.TransportSocketRequestTime", | 1170 "Net.TransportSocketRequestTime", |
| 1180 time_to_obtain_connected_socket, | 1171 time_to_obtain_connected_socket, |
| 1181 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), | 1172 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), |
| 1182 100); | 1173 100); |
| 1183 | 1174 |
| 1184 if (use_late_binding_histogram) { | 1175 if (use_late_binding_histogram) { |
| 1185 UMA_HISTOGRAM_CUSTOM_TIMES( | 1176 UMA_HISTOGRAM_CUSTOM_TIMES( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 NOTREACHED(); | 1214 NOTREACHED(); |
| 1224 break; | 1215 break; |
| 1225 } | 1216 } |
| 1226 } | 1217 } |
| 1227 | 1218 |
| 1228 void HttpNetworkTransaction::LogIOErrorMetrics( | 1219 void HttpNetworkTransaction::LogIOErrorMetrics( |
| 1229 const ClientSocketHandle& handle) { | 1220 const ClientSocketHandle& handle) { |
| 1230 static const bool use_late_binding_histogram = | 1221 static const bool use_late_binding_histogram = |
| 1231 !FieldTrial::MakeName("", "SocketLateBinding").empty(); | 1222 !FieldTrial::MakeName("", "SocketLateBinding").empty(); |
| 1232 | 1223 |
| 1233 static scoped_refptr<Histogram> io_error_socket_type_counter = | 1224 UMA_HISTOGRAM_ENUMERATION("Net.IOError_SocketReuseType", |
| 1234 LinearHistogram::LinearHistogramFactoryGet( | 1225 handle.reuse_type(), ClientSocketHandle::NUM_TYPES); |
| 1235 "Net.IOError_SocketReuseType", | |
| 1236 1, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | |
| 1237 io_error_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); | |
| 1238 io_error_socket_type_counter->Add(handle.reuse_type()); | |
| 1239 | 1226 |
| 1240 if (use_late_binding_histogram) { | 1227 if (use_late_binding_histogram) { |
| 1241 static scoped_refptr<Histogram> io_error_socket_type_counter = | 1228 UMA_HISTOGRAM_ENUMERATION( |
| 1242 LinearHistogram::LinearHistogramFactoryGet( | 1229 FieldTrial::MakeName("Net.IOError_SocketReuseType", |
| 1243 FieldTrial::MakeName("Net.IOError_SocketReuseType", | 1230 "SocketLateBinding"), |
| 1244 "SocketLateBinding").data(), | 1231 handle.reuse_type(), ClientSocketHandle::NUM_TYPES); |
| 1245 1, ClientSocketHandle::NUM_TYPES, | |
| 1246 ClientSocketHandle::NUM_TYPES + 1); | |
| 1247 io_error_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); | |
| 1248 io_error_socket_type_counter->Add(handle.reuse_type()); | |
| 1249 } | 1232 } |
| 1250 | 1233 |
| 1251 switch (handle.reuse_type()) { | 1234 switch (handle.reuse_type()) { |
| 1252 case ClientSocketHandle::UNUSED: | 1235 case ClientSocketHandle::UNUSED: |
| 1253 break; | 1236 break; |
| 1254 case ClientSocketHandle::UNUSED_IDLE: | 1237 case ClientSocketHandle::UNUSED_IDLE: |
| 1255 UMA_HISTOGRAM_CUSTOM_TIMES( | 1238 UMA_HISTOGRAM_CUSTOM_TIMES( |
| 1256 "Net.SocketIdleTimeOnIOError2_UnusedSocket", | 1239 "Net.SocketIdleTimeOnIOError2_UnusedSocket", |
| 1257 handle.idle_time(), base::TimeDelta::FromMilliseconds(1), | 1240 handle.idle_time(), base::TimeDelta::FromMilliseconds(1), |
| 1258 base::TimeDelta::FromMinutes(6), 100); | 1241 base::TimeDelta::FromMinutes(6), 100); |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1837 AuthChallengeInfo* auth_info = new AuthChallengeInfo; | 1820 AuthChallengeInfo* auth_info = new AuthChallengeInfo; |
| 1838 auth_info->is_proxy = target == HttpAuth::AUTH_PROXY; | 1821 auth_info->is_proxy = target == HttpAuth::AUTH_PROXY; |
| 1839 auth_info->host_and_port = ASCIIToWide(GetHostAndPort(auth_origin)); | 1822 auth_info->host_and_port = ASCIIToWide(GetHostAndPort(auth_origin)); |
| 1840 auth_info->scheme = ASCIIToWide(auth_handler_[target]->scheme()); | 1823 auth_info->scheme = ASCIIToWide(auth_handler_[target]->scheme()); |
| 1841 // TODO(eroman): decode realm according to RFC 2047. | 1824 // TODO(eroman): decode realm according to RFC 2047. |
| 1842 auth_info->realm = ASCIIToWide(auth_handler_[target]->realm()); | 1825 auth_info->realm = ASCIIToWide(auth_handler_[target]->realm()); |
| 1843 response_.auth_challenge = auth_info; | 1826 response_.auth_challenge = auth_info; |
| 1844 } | 1827 } |
| 1845 | 1828 |
| 1846 } // namespace net | 1829 } // namespace net |
| OLD | NEW |