| 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 978 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 989 !FieldTrial::MakeName("", "SocketLateBinding").empty(); | 989 !FieldTrial::MakeName("", "SocketLateBinding").empty(); |
| 990 | 990 |
| 991 if (handle.reuse_type() == ClientSocketHandle::UNUSED) { | 991 if (handle.reuse_type() == ClientSocketHandle::UNUSED) { |
| 992 UMA_HISTOGRAM_CLIPPED_TIMES( | 992 UMA_HISTOGRAM_CLIPPED_TIMES( |
| 993 "Net.Dns_Resolution_And_TCP_Connection_Latency", | 993 "Net.Dns_Resolution_And_TCP_Connection_Latency", |
| 994 time_to_obtain_connected_socket, | 994 time_to_obtain_connected_socket, |
| 995 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), | 995 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), |
| 996 100); | 996 100); |
| 997 } | 997 } |
| 998 | 998 |
| 999 static LinearHistogram tcp_socket_type_counter( | 999 static scoped_refptr<Histogram> tcp_socket_type_counter = |
| 1000 "Net.TCPSocketType", | 1000 LinearHistogram::LinearHistogramFactoryGet( |
| 1001 0, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | 1001 "Net.TCPSocketType", |
| 1002 tcp_socket_type_counter.SetFlags(kUmaTargetedHistogramFlag); | 1002 1, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); |
| 1003 tcp_socket_type_counter.Add(handle.reuse_type()); | 1003 tcp_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); |
| 1004 tcp_socket_type_counter->Add(handle.reuse_type()); |
| 1004 | 1005 |
| 1005 if (use_late_binding_histogram) { | 1006 if (use_late_binding_histogram) { |
| 1006 static LinearHistogram tcp_socket_type_counter2( | 1007 static scoped_refptr<Histogram> tcp_socket_type_counter2 = |
| 1007 FieldTrial::MakeName("Net.TCPSocketType", "SocketLateBinding").data(), | 1008 LinearHistogram::LinearHistogramFactoryGet( |
| 1008 0, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | 1009 FieldTrial::MakeName("Net.TCPSocketType", |
| 1009 tcp_socket_type_counter2.SetFlags(kUmaTargetedHistogramFlag); | 1010 "SocketLateBinding").data(), |
| 1010 tcp_socket_type_counter2.Add(handle.reuse_type()); | 1011 1, ClientSocketHandle::NUM_TYPES, |
| 1012 ClientSocketHandle::NUM_TYPES + 1); |
| 1013 tcp_socket_type_counter2->SetFlags(kUmaTargetedHistogramFlag); |
| 1014 tcp_socket_type_counter2->Add(handle.reuse_type()); |
| 1011 } | 1015 } |
| 1012 | 1016 |
| 1013 UMA_HISTOGRAM_CLIPPED_TIMES( | 1017 UMA_HISTOGRAM_CLIPPED_TIMES( |
| 1014 "Net.TransportSocketRequestTime", | 1018 "Net.TransportSocketRequestTime", |
| 1015 time_to_obtain_connected_socket, | 1019 time_to_obtain_connected_socket, |
| 1016 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), | 1020 base::TimeDelta::FromMilliseconds(1), base::TimeDelta::FromMinutes(10), |
| 1017 100); | 1021 100); |
| 1018 | 1022 |
| 1019 if (use_late_binding_histogram) { | 1023 if (use_late_binding_histogram) { |
| 1020 UMA_HISTOGRAM_CUSTOM_TIMES( | 1024 UMA_HISTOGRAM_CUSTOM_TIMES( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 NOTREACHED(); | 1062 NOTREACHED(); |
| 1059 break; | 1063 break; |
| 1060 } | 1064 } |
| 1061 } | 1065 } |
| 1062 | 1066 |
| 1063 void HttpNetworkTransaction::LogIOErrorMetrics( | 1067 void HttpNetworkTransaction::LogIOErrorMetrics( |
| 1064 const ClientSocketHandle& handle) { | 1068 const ClientSocketHandle& handle) { |
| 1065 static const bool use_late_binding_histogram = | 1069 static const bool use_late_binding_histogram = |
| 1066 !FieldTrial::MakeName("", "SocketLateBinding").empty(); | 1070 !FieldTrial::MakeName("", "SocketLateBinding").empty(); |
| 1067 | 1071 |
| 1068 static LinearHistogram io_error_socket_type_counter( | 1072 static scoped_refptr<Histogram> io_error_socket_type_counter = |
| 1069 "Net.IOError_SocketReuseType", | 1073 LinearHistogram::LinearHistogramFactoryGet( |
| 1070 0, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | 1074 "Net.IOError_SocketReuseType", |
| 1071 io_error_socket_type_counter.SetFlags(kUmaTargetedHistogramFlag); | 1075 1, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); |
| 1072 io_error_socket_type_counter.Add(handle.reuse_type()); | 1076 io_error_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); |
| 1077 io_error_socket_type_counter->Add(handle.reuse_type()); |
| 1073 | 1078 |
| 1074 if (use_late_binding_histogram) { | 1079 if (use_late_binding_histogram) { |
| 1075 static LinearHistogram io_error_socket_type_counter( | 1080 static scoped_refptr<Histogram> io_error_socket_type_counter = |
| 1076 FieldTrial::MakeName("Net.IOError_SocketReuseType", | 1081 LinearHistogram::LinearHistogramFactoryGet( |
| 1077 "SocketLateBinding").data(), | 1082 FieldTrial::MakeName("Net.IOError_SocketReuseType", |
| 1078 0, ClientSocketHandle::NUM_TYPES, ClientSocketHandle::NUM_TYPES + 1); | 1083 "SocketLateBinding").data(), |
| 1079 io_error_socket_type_counter.SetFlags(kUmaTargetedHistogramFlag); | 1084 1, ClientSocketHandle::NUM_TYPES, |
| 1080 io_error_socket_type_counter.Add(handle.reuse_type()); | 1085 ClientSocketHandle::NUM_TYPES + 1); |
| 1086 io_error_socket_type_counter->SetFlags(kUmaTargetedHistogramFlag); |
| 1087 io_error_socket_type_counter->Add(handle.reuse_type()); |
| 1081 } | 1088 } |
| 1082 | 1089 |
| 1083 switch (handle.reuse_type()) { | 1090 switch (handle.reuse_type()) { |
| 1084 case ClientSocketHandle::UNUSED: | 1091 case ClientSocketHandle::UNUSED: |
| 1085 break; | 1092 break; |
| 1086 case ClientSocketHandle::UNUSED_IDLE: | 1093 case ClientSocketHandle::UNUSED_IDLE: |
| 1087 UMA_HISTOGRAM_CUSTOM_TIMES( | 1094 UMA_HISTOGRAM_CUSTOM_TIMES( |
| 1088 "Net.SocketIdleTimeOnIOError2_UnusedSocket", | 1095 "Net.SocketIdleTimeOnIOError2_UnusedSocket", |
| 1089 handle.idle_time(), base::TimeDelta::FromMilliseconds(1), | 1096 handle.idle_time(), base::TimeDelta::FromMilliseconds(1), |
| 1090 base::TimeDelta::FromMinutes(6), 100); | 1097 base::TimeDelta::FromMinutes(6), 100); |
| (...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1684 AuthChallengeInfo* auth_info = new AuthChallengeInfo; | 1691 AuthChallengeInfo* auth_info = new AuthChallengeInfo; |
| 1685 auth_info->is_proxy = target == HttpAuth::AUTH_PROXY; | 1692 auth_info->is_proxy = target == HttpAuth::AUTH_PROXY; |
| 1686 auth_info->host_and_port = ASCIIToWide(GetHostAndPort(auth_origin)); | 1693 auth_info->host_and_port = ASCIIToWide(GetHostAndPort(auth_origin)); |
| 1687 auth_info->scheme = ASCIIToWide(auth_handler_[target]->scheme()); | 1694 auth_info->scheme = ASCIIToWide(auth_handler_[target]->scheme()); |
| 1688 // TODO(eroman): decode realm according to RFC 2047. | 1695 // TODO(eroman): decode realm according to RFC 2047. |
| 1689 auth_info->realm = ASCIIToWide(auth_handler_[target]->realm()); | 1696 auth_info->realm = ASCIIToWide(auth_handler_[target]->realm()); |
| 1690 http_stream_->GetResponseInfo()->auth_challenge = auth_info; | 1697 http_stream_->GetResponseInfo()->auth_challenge = auth_info; |
| 1691 } | 1698 } |
| 1692 | 1699 |
| 1693 } // namespace net | 1700 } // namespace net |
| OLD | NEW |