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

Side by Side Diff: net/socket/client_socket_pool_manager.cc

Issue 5386001: Cache certificate verification results in memory. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add unit tests. Ready for review. Created 10 years 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 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a 5 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a
6 // simple container for all of them. Most importantly, it handles the lifetime 6 // simple container for all of them. Most importantly, it handles the lifetime
7 // and destruction order properly. 7 // and destruction order properly.
8 8
9 #include "net/socket/client_socket_pool_manager.h" 9 #include "net/socket/client_socket_pool_manager.h"
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 include_nested_pools)); 48 include_nested_pools));
49 } 49 }
50 } 50 }
51 51
52 } // namespace 52 } // namespace
53 53
54 ClientSocketPoolManager::ClientSocketPoolManager( 54 ClientSocketPoolManager::ClientSocketPoolManager(
55 NetLog* net_log, 55 NetLog* net_log,
56 ClientSocketFactory* socket_factory, 56 ClientSocketFactory* socket_factory,
57 HostResolver* host_resolver, 57 HostResolver* host_resolver,
58 CertVerifier* cert_verifier,
58 DnsRRResolver* dnsrr_resolver, 59 DnsRRResolver* dnsrr_resolver,
59 DnsCertProvenanceChecker* dns_cert_checker, 60 DnsCertProvenanceChecker* dns_cert_checker,
60 SSLHostInfoFactory* ssl_host_info_factory, 61 SSLHostInfoFactory* ssl_host_info_factory,
61 ProxyService* proxy_service, 62 ProxyService* proxy_service,
62 SSLConfigService* ssl_config_service) 63 SSLConfigService* ssl_config_service)
63 : net_log_(net_log), 64 : net_log_(net_log),
64 socket_factory_(socket_factory), 65 socket_factory_(socket_factory),
65 host_resolver_(host_resolver), 66 host_resolver_(host_resolver),
67 cert_verifier_(cert_verifier),
66 dnsrr_resolver_(dnsrr_resolver), 68 dnsrr_resolver_(dnsrr_resolver),
67 dns_cert_checker_(dns_cert_checker), 69 dns_cert_checker_(dns_cert_checker),
68 ssl_host_info_factory_(ssl_host_info_factory), 70 ssl_host_info_factory_(ssl_host_info_factory),
69 proxy_service_(proxy_service), 71 proxy_service_(proxy_service),
70 ssl_config_service_(ssl_config_service), 72 ssl_config_service_(ssl_config_service),
71 tcp_pool_histograms_("TCP"), 73 tcp_pool_histograms_("TCP"),
72 tcp_socket_pool_(new TCPClientSocketPool( 74 tcp_socket_pool_(new TCPClientSocketPool(
73 g_max_sockets, g_max_sockets_per_group, 75 g_max_sockets, g_max_sockets_per_group,
74 &tcp_pool_histograms_, 76 &tcp_pool_histograms_,
75 host_resolver, 77 host_resolver,
76 socket_factory_, 78 socket_factory_,
77 net_log)), 79 net_log)),
78 ssl_pool_histograms_("SSL2"), 80 ssl_pool_histograms_("SSL2"),
79 ssl_socket_pool_(new SSLClientSocketPool( 81 ssl_socket_pool_(new SSLClientSocketPool(
80 g_max_sockets, g_max_sockets_per_group, 82 g_max_sockets, g_max_sockets_per_group,
81 &ssl_pool_histograms_, 83 &ssl_pool_histograms_,
82 host_resolver, 84 host_resolver,
85 cert_verifier,
83 dnsrr_resolver, 86 dnsrr_resolver,
84 dns_cert_checker, 87 dns_cert_checker,
85 ssl_host_info_factory, 88 ssl_host_info_factory,
86 socket_factory, 89 socket_factory,
87 tcp_socket_pool_.get(), 90 tcp_socket_pool_.get(),
88 NULL /* no socks proxy */, 91 NULL /* no socks proxy */,
89 NULL /* no http proxy */, 92 NULL /* no http proxy */,
90 ssl_config_service, 93 ssl_config_service,
91 net_log)), 94 net_log)),
92 tcp_for_socks_pool_histograms_("TCPforSOCKS"), 95 tcp_for_socks_pool_histograms_("TCPforSOCKS"),
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 DCHECK(tcp_https_ret.second); 226 DCHECK(tcp_https_ret.second);
224 227
225 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret = 228 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret =
226 ssl_socket_pools_for_https_proxies_.insert( 229 ssl_socket_pools_for_https_proxies_.insert(
227 std::make_pair( 230 std::make_pair(
228 http_proxy, 231 http_proxy,
229 new SSLClientSocketPool( 232 new SSLClientSocketPool(
230 g_max_sockets_per_proxy_server, g_max_sockets_per_group, 233 g_max_sockets_per_proxy_server, g_max_sockets_per_group,
231 &ssl_for_https_proxy_pool_histograms_, 234 &ssl_for_https_proxy_pool_histograms_,
232 host_resolver_, 235 host_resolver_,
236 cert_verifier_,
233 dnsrr_resolver_, 237 dnsrr_resolver_,
234 dns_cert_checker_, 238 dns_cert_checker_,
235 ssl_host_info_factory_, 239 ssl_host_info_factory_,
236 socket_factory_, 240 socket_factory_,
237 tcp_https_ret.first->second /* https proxy */, 241 tcp_https_ret.first->second /* https proxy */,
238 NULL /* no socks proxy */, 242 NULL /* no socks proxy */,
239 NULL /* no http proxy */, 243 NULL /* no http proxy */,
240 ssl_config_service_, net_log_))); 244 ssl_config_service_, net_log_)));
241 DCHECK(tcp_https_ret.second); 245 DCHECK(tcp_https_ret.second);
242 246
(...skipping 16 matching lines...) Expand all
259 const HostPortPair& proxy_server) { 263 const HostPortPair& proxy_server) {
260 SSLSocketPoolMap::const_iterator it = 264 SSLSocketPoolMap::const_iterator it =
261 ssl_socket_pools_for_proxies_.find(proxy_server); 265 ssl_socket_pools_for_proxies_.find(proxy_server);
262 if (it != ssl_socket_pools_for_proxies_.end()) 266 if (it != ssl_socket_pools_for_proxies_.end())
263 return it->second; 267 return it->second;
264 268
265 SSLClientSocketPool* new_pool = new SSLClientSocketPool( 269 SSLClientSocketPool* new_pool = new SSLClientSocketPool(
266 g_max_sockets_per_proxy_server, g_max_sockets_per_group, 270 g_max_sockets_per_proxy_server, g_max_sockets_per_group,
267 &ssl_pool_histograms_, 271 &ssl_pool_histograms_,
268 host_resolver_, 272 host_resolver_,
273 cert_verifier_,
269 dnsrr_resolver_, 274 dnsrr_resolver_,
270 dns_cert_checker_, 275 dns_cert_checker_,
271 ssl_host_info_factory_, 276 ssl_host_info_factory_,
272 socket_factory_, 277 socket_factory_,
273 NULL, /* no tcp pool, we always go through a proxy */ 278 NULL, /* no tcp pool, we always go through a proxy */
274 GetSocketPoolForSOCKSProxy(proxy_server), 279 GetSocketPoolForSOCKSProxy(proxy_server),
275 GetSocketPoolForHTTPProxy(proxy_server), 280 GetSocketPoolForHTTPProxy(proxy_server),
276 ssl_config_service_, 281 ssl_config_service_,
277 net_log_); 282 net_log_);
278 283
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 // Third parameter is false because |ssl_socket_pools_for_proxies_| use 337 // Third parameter is false because |ssl_socket_pools_for_proxies_| use
333 // socket pools in |http_proxy_socket_pools_| and |socks_socket_pools_|. 338 // socket pools in |http_proxy_socket_pools_| and |socks_socket_pools_|.
334 AddSocketPoolsToList(list, 339 AddSocketPoolsToList(list,
335 ssl_socket_pools_for_proxies_, 340 ssl_socket_pools_for_proxies_,
336 "ssl_socket_pool_for_proxies", 341 "ssl_socket_pool_for_proxies",
337 false); 342 false);
338 return list; 343 return list;
339 } 344 }
340 345
341 } // namespace net 346 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698