Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: net/http/http_network_session.cc

Issue 2802015: Massively simplify the NetworkChangeNotifier infrastructure:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 18 matching lines...) Expand all
29 // http and SOCKS proxies. See http://crbug.com/12066 and 29 // http and SOCKS proxies. See http://crbug.com/12066 and
30 // http://crbug.com/44501 for details about proxy server connection limits. 30 // http://crbug.com/44501 for details about proxy server connection limits.
31 int g_max_sockets_per_proxy_server = 32; 31 int g_max_sockets_per_proxy_server = 32;
32 32
33 uint16 g_fixed_http_port = 0; 33 uint16 g_fixed_http_port = 0;
34 uint16 g_fixed_https_port = 0; 34 uint16 g_fixed_https_port = 0;
35 35
36 } // namespace 36 } // namespace
37 37
38 HttpNetworkSession::HttpNetworkSession( 38 HttpNetworkSession::HttpNetworkSession(
39 NetworkChangeNotifier* network_change_notifier,
40 HostResolver* host_resolver, 39 HostResolver* host_resolver,
41 ProxyService* proxy_service, 40 ProxyService* proxy_service,
42 ClientSocketFactory* client_socket_factory, 41 ClientSocketFactory* client_socket_factory,
43 SSLConfigService* ssl_config_service, 42 SSLConfigService* ssl_config_service,
44 SpdySessionPool* spdy_session_pool, 43 SpdySessionPool* spdy_session_pool,
45 HttpAuthHandlerFactory* http_auth_handler_factory, 44 HttpAuthHandlerFactory* http_auth_handler_factory,
46 HttpNetworkDelegate* network_delegate, 45 HttpNetworkDelegate* network_delegate,
47 NetLog* net_log) 46 NetLog* net_log)
48 : network_change_notifier_(network_change_notifier),
49 // TODO(vandebo) when we've completely converted to pools, the base TCP 47 // TODO(vandebo) when we've completely converted to pools, the base TCP
50 // pool name should get changed to TCP instead of Transport. 48 // pool name should get changed to TCP instead of Transport.
51 tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")), 49 : tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")),
52 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")), 50 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")),
53 tcp_for_socks_pool_histograms_( 51 tcp_for_socks_pool_histograms_(
54 new ClientSocketPoolHistograms("TCPforSOCKS")), 52 new ClientSocketPoolHistograms("TCPforSOCKS")),
55 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")), 53 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")),
56 tcp_socket_pool_(new TCPClientSocketPool( 54 tcp_socket_pool_(new TCPClientSocketPool(g_max_sockets,
57 g_max_sockets, g_max_sockets_per_group, tcp_pool_histograms_, 55 g_max_sockets_per_group, tcp_pool_histograms_, host_resolver,
58 host_resolver, client_socket_factory, network_change_notifier_, 56 client_socket_factory, net_log)),
59 net_log)),
60 socket_factory_(client_socket_factory), 57 socket_factory_(client_socket_factory),
61 host_resolver_(host_resolver), 58 host_resolver_(host_resolver),
62 proxy_service_(proxy_service), 59 proxy_service_(proxy_service),
63 ssl_config_service_(ssl_config_service), 60 ssl_config_service_(ssl_config_service),
64 spdy_session_pool_(spdy_session_pool), 61 spdy_session_pool_(spdy_session_pool),
65 http_auth_handler_factory_(http_auth_handler_factory), 62 http_auth_handler_factory_(http_auth_handler_factory),
66 network_delegate_(network_delegate), 63 network_delegate_(network_delegate),
67 net_log_(net_log) { 64 net_log_(net_log) {
68 DCHECK(proxy_service); 65 DCHECK(proxy_service);
69 DCHECK(ssl_config_service); 66 DCHECK(ssl_config_service);
70 } 67 }
71 68
72 HttpNetworkSession::~HttpNetworkSession() { 69 HttpNetworkSession::~HttpNetworkSession() {
73 } 70 }
74 71
75 const scoped_refptr<TCPClientSocketPool>& 72 const scoped_refptr<TCPClientSocketPool>&
76 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) { 73 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) {
77 HTTPProxySocketPoolMap::const_iterator it = 74 HTTPProxySocketPoolMap::const_iterator it =
78 http_proxy_socket_pool_.find(http_proxy); 75 http_proxy_socket_pool_.find(http_proxy);
79 if (it != http_proxy_socket_pool_.end()) 76 if (it != http_proxy_socket_pool_.end())
80 return it->second; 77 return it->second;
81 78
82 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = 79 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret =
83 http_proxy_socket_pool_.insert( 80 http_proxy_socket_pool_.insert(std::make_pair(http_proxy,
84 std::make_pair( 81 new TCPClientSocketPool(g_max_sockets_per_proxy_server,
85 http_proxy, 82 g_max_sockets_per_group, http_proxy_pool_histograms_,
86 new TCPClientSocketPool( 83 host_resolver_, socket_factory_, net_log_)));
87 g_max_sockets_per_proxy_server, g_max_sockets_per_group,
88 http_proxy_pool_histograms_, host_resolver_, socket_factory_,
89 network_change_notifier_,
90 net_log_)));
91 84
92 return ret.first->second; 85 return ret.first->second;
93 } 86 }
94 87
95 const scoped_refptr<SOCKSClientSocketPool>& 88 const scoped_refptr<SOCKSClientSocketPool>&
96 HttpNetworkSession::GetSocketPoolForSOCKSProxy( 89 HttpNetworkSession::GetSocketPoolForSOCKSProxy(
97 const HostPortPair& socks_proxy) { 90 const HostPortPair& socks_proxy) {
98 SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy); 91 SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy);
99 if (it != socks_socket_pool_.end()) 92 if (it != socks_socket_pool_.end())
100 return it->second; 93 return it->second;
101 94
102 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = 95 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = socks_socket_pool_.insert(
103 socks_socket_pool_.insert( 96 std::make_pair(socks_proxy, new SOCKSClientSocketPool(
104 std::make_pair( 97 g_max_sockets_per_proxy_server, g_max_sockets_per_group,
105 socks_proxy, 98 socks_pool_histograms_, host_resolver_,
106 new SOCKSClientSocketPool( 99 new TCPClientSocketPool(g_max_sockets_per_proxy_server,
107 g_max_sockets_per_proxy_server, g_max_sockets_per_group, 100 g_max_sockets_per_group, tcp_for_socks_pool_histograms_,
108 socks_pool_histograms_, host_resolver_, 101 host_resolver_, socket_factory_, net_log_),
109 new TCPClientSocketPool(g_max_sockets_per_proxy_server, 102 net_log_)));
110 g_max_sockets_per_group,
111 tcp_for_socks_pool_histograms_,
112 host_resolver_, socket_factory_,
113 network_change_notifier_,
114 net_log_),
115 network_change_notifier_, net_log_)));
116 103
117 return ret.first->second; 104 return ret.first->second;
118 } 105 }
119 106
120 // static 107 // static
121 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) { 108 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) {
122 DCHECK_LT(0, socket_count); 109 DCHECK_LT(0, socket_count);
123 // The following is a sanity check... but we should NEVER be near this value. 110 // The following is a sanity check... but we should NEVER be near this value.
124 DCHECK_GT(100, socket_count); 111 DCHECK_GT(100, socket_count);
125 g_max_sockets_per_group = socket_count; 112 g_max_sockets_per_group = socket_count;
(...skipping 13 matching lines...) Expand all
139 uint16 HttpNetworkSession::fixed_https_port() { 126 uint16 HttpNetworkSession::fixed_https_port() {
140 return g_fixed_https_port; 127 return g_fixed_https_port;
141 } 128 }
142 129
143 // static 130 // static
144 void HttpNetworkSession::set_fixed_https_port(uint16 port) { 131 void HttpNetworkSession::set_fixed_https_port(uint16 port) {
145 g_fixed_https_port = port; 132 g_fixed_https_port = port;
146 } 133 }
147 134
148 } // namespace net 135 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698