OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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_session.h" | 5 #include "net/http/http_network_session.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/stl_util-inl.h" | 10 #include "base/stl_util-inl.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 } // namespace | 36 } // namespace |
37 | 37 |
38 HttpNetworkSession::HttpNetworkSession( | 38 HttpNetworkSession::HttpNetworkSession( |
39 NetworkChangeNotifier* network_change_notifier, | 39 NetworkChangeNotifier* network_change_notifier, |
40 HostResolver* host_resolver, | 40 HostResolver* host_resolver, |
41 ProxyService* proxy_service, | 41 ProxyService* proxy_service, |
42 ClientSocketFactory* client_socket_factory, | 42 ClientSocketFactory* client_socket_factory, |
43 SSLConfigService* ssl_config_service, | 43 SSLConfigService* ssl_config_service, |
44 SpdySessionPool* spdy_session_pool, | 44 SpdySessionPool* spdy_session_pool, |
45 HttpAuthHandlerFactory* http_auth_handler_factory) | 45 HttpAuthHandlerFactory* http_auth_handler_factory, |
| 46 NetLog* net_log) |
46 : network_change_notifier_(network_change_notifier), | 47 : network_change_notifier_(network_change_notifier), |
47 // TODO(vandebo) when we've completely converted to pools, the base TCP | 48 // TODO(vandebo) when we've completely converted to pools, the base TCP |
48 // pool name should get changed to TCP instead of Transport. | 49 // pool name should get changed to TCP instead of Transport. |
49 tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")), | 50 tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")), |
50 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")), | 51 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")), |
51 tcp_for_socks_pool_histograms_( | 52 tcp_for_socks_pool_histograms_( |
52 new ClientSocketPoolHistograms("TCPforSOCKS")), | 53 new ClientSocketPoolHistograms("TCPforSOCKS")), |
53 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")), | 54 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")), |
54 tcp_socket_pool_(new TCPClientSocketPool( | 55 tcp_socket_pool_(new TCPClientSocketPool( |
55 g_max_sockets, g_max_sockets_per_group, tcp_pool_histograms_, | 56 g_max_sockets, g_max_sockets_per_group, tcp_pool_histograms_, |
56 host_resolver, client_socket_factory, network_change_notifier_)), | 57 host_resolver, client_socket_factory, network_change_notifier_, |
| 58 net_log)), |
57 socket_factory_(client_socket_factory), | 59 socket_factory_(client_socket_factory), |
58 host_resolver_(host_resolver), | 60 host_resolver_(host_resolver), |
59 proxy_service_(proxy_service), | 61 proxy_service_(proxy_service), |
60 ssl_config_service_(ssl_config_service), | 62 ssl_config_service_(ssl_config_service), |
61 spdy_session_pool_(spdy_session_pool), | 63 spdy_session_pool_(spdy_session_pool), |
62 http_auth_handler_factory_(http_auth_handler_factory) { | 64 http_auth_handler_factory_(http_auth_handler_factory), |
| 65 net_log_(net_log) { |
63 DCHECK(proxy_service); | 66 DCHECK(proxy_service); |
64 DCHECK(ssl_config_service); | 67 DCHECK(ssl_config_service); |
65 } | 68 } |
66 | 69 |
67 HttpNetworkSession::~HttpNetworkSession() { | 70 HttpNetworkSession::~HttpNetworkSession() { |
68 } | 71 } |
69 | 72 |
70 const scoped_refptr<TCPClientSocketPool>& | 73 const scoped_refptr<TCPClientSocketPool>& |
71 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) { | 74 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) { |
72 HTTPProxySocketPoolMap::const_iterator it = | 75 HTTPProxySocketPoolMap::const_iterator it = |
73 http_proxy_socket_pool_.find(http_proxy); | 76 http_proxy_socket_pool_.find(http_proxy); |
74 if (it != http_proxy_socket_pool_.end()) | 77 if (it != http_proxy_socket_pool_.end()) |
75 return it->second; | 78 return it->second; |
76 | 79 |
77 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = | 80 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = |
78 http_proxy_socket_pool_.insert( | 81 http_proxy_socket_pool_.insert( |
79 std::make_pair( | 82 std::make_pair( |
80 http_proxy, | 83 http_proxy, |
81 new TCPClientSocketPool( | 84 new TCPClientSocketPool( |
82 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 85 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
83 http_proxy_pool_histograms_, host_resolver_, socket_factory_, | 86 http_proxy_pool_histograms_, host_resolver_, socket_factory_, |
84 network_change_notifier_))); | 87 network_change_notifier_, |
| 88 net_log_))); |
85 | 89 |
86 return ret.first->second; | 90 return ret.first->second; |
87 } | 91 } |
88 | 92 |
89 const scoped_refptr<SOCKSClientSocketPool>& | 93 const scoped_refptr<SOCKSClientSocketPool>& |
90 HttpNetworkSession::GetSocketPoolForSOCKSProxy( | 94 HttpNetworkSession::GetSocketPoolForSOCKSProxy( |
91 const HostPortPair& socks_proxy) { | 95 const HostPortPair& socks_proxy) { |
92 SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy); | 96 SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy); |
93 if (it != socks_socket_pool_.end()) | 97 if (it != socks_socket_pool_.end()) |
94 return it->second; | 98 return it->second; |
95 | 99 |
96 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = | 100 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = |
97 socks_socket_pool_.insert( | 101 socks_socket_pool_.insert( |
98 std::make_pair( | 102 std::make_pair( |
99 socks_proxy, | 103 socks_proxy, |
100 new SOCKSClientSocketPool( | 104 new SOCKSClientSocketPool( |
101 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 105 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
102 socks_pool_histograms_, host_resolver_, | 106 socks_pool_histograms_, host_resolver_, |
103 new TCPClientSocketPool(g_max_sockets_per_proxy_server, | 107 new TCPClientSocketPool(g_max_sockets_per_proxy_server, |
104 g_max_sockets_per_group, | 108 g_max_sockets_per_group, |
105 tcp_for_socks_pool_histograms_, | 109 tcp_for_socks_pool_histograms_, |
106 host_resolver_, socket_factory_, | 110 host_resolver_, socket_factory_, |
107 network_change_notifier_), | 111 network_change_notifier_, |
108 network_change_notifier_))); | 112 net_log_), |
| 113 network_change_notifier_, net_log_))); |
109 | 114 |
110 return ret.first->second; | 115 return ret.first->second; |
111 } | 116 } |
112 | 117 |
113 // static | 118 // static |
114 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) { | 119 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) { |
115 DCHECK_LT(0, socket_count); | 120 DCHECK_LT(0, socket_count); |
116 // The following is a sanity check... but we should NEVER be near this value. | 121 // The following is a sanity check... but we should NEVER be near this value. |
117 DCHECK_GT(100, socket_count); | 122 DCHECK_GT(100, socket_count); |
118 g_max_sockets_per_group = socket_count; | 123 g_max_sockets_per_group = socket_count; |
(...skipping 18 matching lines...) Expand all Loading... |
137 void HttpNetworkSession::set_fixed_https_port(uint16 port) { | 142 void HttpNetworkSession::set_fixed_https_port(uint16 port) { |
138 g_fixed_https_port = port; | 143 g_fixed_https_port = port; |
139 } | 144 } |
140 | 145 |
141 void HttpNetworkSession::ReplaceTCPSocketPool() { | 146 void HttpNetworkSession::ReplaceTCPSocketPool() { |
142 tcp_socket_pool_ = new TCPClientSocketPool(g_max_sockets, | 147 tcp_socket_pool_ = new TCPClientSocketPool(g_max_sockets, |
143 g_max_sockets_per_group, | 148 g_max_sockets_per_group, |
144 tcp_pool_histograms_, | 149 tcp_pool_histograms_, |
145 host_resolver_, | 150 host_resolver_, |
146 socket_factory_, | 151 socket_factory_, |
147 network_change_notifier_); | 152 network_change_notifier_, |
| 153 net_log_); |
148 } | 154 } |
149 | 155 |
150 } // namespace net | 156 } // namespace net |
OLD | NEW |