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

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

Issue 1027693004: Delete the ClientSocketPoolHistograms class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: small xml fix Created 5 years, 9 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/socket/client_socket_pool_manager_impl.h" 5 #include "net/socket/client_socket_pool_manager_impl.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "net/http/http_network_session.h" 9 #include "net/http/http_network_session.h"
10 #include "net/http/http_proxy_client_socket_pool.h" 10 #include "net/http/http_proxy_client_socket_pool.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 socket_factory_(socket_factory), 50 socket_factory_(socket_factory),
51 host_resolver_(host_resolver), 51 host_resolver_(host_resolver),
52 cert_verifier_(cert_verifier), 52 cert_verifier_(cert_verifier),
53 channel_id_service_(channel_id_service), 53 channel_id_service_(channel_id_service),
54 transport_security_state_(transport_security_state), 54 transport_security_state_(transport_security_state),
55 cert_transparency_verifier_(cert_transparency_verifier), 55 cert_transparency_verifier_(cert_transparency_verifier),
56 cert_policy_enforcer_(cert_policy_enforcer), 56 cert_policy_enforcer_(cert_policy_enforcer),
57 ssl_session_cache_shard_(ssl_session_cache_shard), 57 ssl_session_cache_shard_(ssl_session_cache_shard),
58 ssl_config_service_(ssl_config_service), 58 ssl_config_service_(ssl_config_service),
59 pool_type_(pool_type), 59 pool_type_(pool_type),
60 transport_pool_histograms_("TCP"),
61 transport_socket_pool_( 60 transport_socket_pool_(
62 pool_type == HttpNetworkSession::WEBSOCKET_SOCKET_POOL 61 pool_type == HttpNetworkSession::WEBSOCKET_SOCKET_POOL
63 ? new WebSocketTransportClientSocketPool( 62 ? new WebSocketTransportClientSocketPool(
64 max_sockets_per_pool(pool_type), 63 max_sockets_per_pool(pool_type),
65 max_sockets_per_group(pool_type), 64 max_sockets_per_group(pool_type),
66 &transport_pool_histograms_,
67 host_resolver, 65 host_resolver,
68 socket_factory_, 66 socket_factory_,
69 net_log) 67 net_log)
70 : new TransportClientSocketPool(max_sockets_per_pool(pool_type), 68 : new TransportClientSocketPool(max_sockets_per_pool(pool_type),
71 max_sockets_per_group(pool_type), 69 max_sockets_per_group(pool_type),
72 &transport_pool_histograms_,
73 host_resolver, 70 host_resolver,
74 socket_factory_, 71 socket_factory_,
75 net_log)), 72 net_log)),
76 ssl_pool_histograms_("SSL2"),
77 ssl_socket_pool_(new SSLClientSocketPool(max_sockets_per_pool(pool_type), 73 ssl_socket_pool_(new SSLClientSocketPool(max_sockets_per_pool(pool_type),
78 max_sockets_per_group(pool_type), 74 max_sockets_per_group(pool_type),
79 &ssl_pool_histograms_,
80 cert_verifier, 75 cert_verifier,
81 channel_id_service, 76 channel_id_service,
82 transport_security_state, 77 transport_security_state,
83 cert_transparency_verifier, 78 cert_transparency_verifier,
84 cert_policy_enforcer, 79 cert_policy_enforcer,
85 ssl_session_cache_shard, 80 ssl_session_cache_shard,
86 socket_factory, 81 socket_factory,
87 transport_socket_pool_.get(), 82 transport_socket_pool_.get(),
88 NULL /* no socks proxy */, 83 NULL /* no socks proxy */,
89 NULL /* no http proxy */, 84 NULL /* no http proxy */,
90 ssl_config_service, 85 ssl_config_service,
91 net_log)), 86 net_log)) {
92 transport_for_socks_pool_histograms_("TCPforSOCKS"),
93 socks_pool_histograms_("SOCK"),
94 transport_for_http_proxy_pool_histograms_("TCPforHTTPProxy"),
95 transport_for_https_proxy_pool_histograms_("TCPforHTTPSProxy"),
96 ssl_for_https_proxy_pool_histograms_("SSLforHTTPSProxy"),
97 http_proxy_pool_histograms_("HTTPProxy"),
98 ssl_socket_pool_for_proxies_histograms_("SSLForProxies") {
99 CertDatabase::GetInstance()->AddObserver(this); 87 CertDatabase::GetInstance()->AddObserver(this);
100 } 88 }
101 89
102 ClientSocketPoolManagerImpl::~ClientSocketPoolManagerImpl() { 90 ClientSocketPoolManagerImpl::~ClientSocketPoolManagerImpl() {
103 CertDatabase::GetInstance()->RemoveObserver(this); 91 CertDatabase::GetInstance()->RemoveObserver(this);
104 } 92 }
105 93
106 void ClientSocketPoolManagerImpl::FlushSocketPoolsWithError(int error) { 94 void ClientSocketPoolManagerImpl::FlushSocketPoolsWithError(int error) {
107 // Flush the highest level pools first, since higher level pools may release 95 // Flush the highest level pools first, since higher level pools may release
108 // stuff to the lower level pools. 96 // stuff to the lower level pools.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 209
222 DCHECK(!ContainsKey(transport_socket_pools_for_socks_proxies_, socks_proxy)); 210 DCHECK(!ContainsKey(transport_socket_pools_for_socks_proxies_, socks_proxy));
223 211
224 std::pair<TransportSocketPoolMap::iterator, bool> tcp_ret = 212 std::pair<TransportSocketPoolMap::iterator, bool> tcp_ret =
225 transport_socket_pools_for_socks_proxies_.insert( 213 transport_socket_pools_for_socks_proxies_.insert(
226 std::make_pair( 214 std::make_pair(
227 socks_proxy, 215 socks_proxy,
228 new TransportClientSocketPool( 216 new TransportClientSocketPool(
229 max_sockets_per_proxy_server(pool_type_), 217 max_sockets_per_proxy_server(pool_type_),
230 max_sockets_per_group(pool_type_), 218 max_sockets_per_group(pool_type_),
231 &transport_for_socks_pool_histograms_,
232 host_resolver_, 219 host_resolver_,
233 socket_factory_, 220 socket_factory_,
234 net_log_))); 221 net_log_)));
235 DCHECK(tcp_ret.second); 222 DCHECK(tcp_ret.second);
236 223
237 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = 224 std::pair<SOCKSSocketPoolMap::iterator, bool> ret =
238 socks_socket_pools_.insert( 225 socks_socket_pools_.insert(
239 std::make_pair(socks_proxy, new SOCKSClientSocketPool( 226 std::make_pair(socks_proxy, new SOCKSClientSocketPool(
240 max_sockets_per_proxy_server(pool_type_), 227 max_sockets_per_proxy_server(pool_type_),
241 max_sockets_per_group(pool_type_), 228 max_sockets_per_group(pool_type_),
242 &socks_pool_histograms_,
243 host_resolver_, 229 host_resolver_,
244 tcp_ret.first->second, 230 tcp_ret.first->second,
245 net_log_))); 231 net_log_)));
246 232
247 return ret.first->second; 233 return ret.first->second;
248 } 234 }
249 235
250 HttpProxyClientSocketPool* 236 HttpProxyClientSocketPool*
251 ClientSocketPoolManagerImpl::GetSocketPoolForHTTPProxy( 237 ClientSocketPoolManagerImpl::GetSocketPoolForHTTPProxy(
252 const HostPortPair& http_proxy) { 238 const HostPortPair& http_proxy) {
(...skipping 10 matching lines...) Expand all
263 DCHECK(!ContainsKey(transport_socket_pools_for_https_proxies_, http_proxy)); 249 DCHECK(!ContainsKey(transport_socket_pools_for_https_proxies_, http_proxy));
264 DCHECK(!ContainsKey(ssl_socket_pools_for_https_proxies_, http_proxy)); 250 DCHECK(!ContainsKey(ssl_socket_pools_for_https_proxies_, http_proxy));
265 251
266 std::pair<TransportSocketPoolMap::iterator, bool> tcp_http_ret = 252 std::pair<TransportSocketPoolMap::iterator, bool> tcp_http_ret =
267 transport_socket_pools_for_http_proxies_.insert( 253 transport_socket_pools_for_http_proxies_.insert(
268 std::make_pair( 254 std::make_pair(
269 http_proxy, 255 http_proxy,
270 new TransportClientSocketPool( 256 new TransportClientSocketPool(
271 max_sockets_per_proxy_server(pool_type_), 257 max_sockets_per_proxy_server(pool_type_),
272 max_sockets_per_group(pool_type_), 258 max_sockets_per_group(pool_type_),
273 &transport_for_http_proxy_pool_histograms_,
274 host_resolver_, 259 host_resolver_,
275 socket_factory_, 260 socket_factory_,
276 net_log_))); 261 net_log_)));
277 DCHECK(tcp_http_ret.second); 262 DCHECK(tcp_http_ret.second);
278 263
279 std::pair<TransportSocketPoolMap::iterator, bool> tcp_https_ret = 264 std::pair<TransportSocketPoolMap::iterator, bool> tcp_https_ret =
280 transport_socket_pools_for_https_proxies_.insert( 265 transport_socket_pools_for_https_proxies_.insert(
281 std::make_pair( 266 std::make_pair(
282 http_proxy, 267 http_proxy,
283 new TransportClientSocketPool( 268 new TransportClientSocketPool(
284 max_sockets_per_proxy_server(pool_type_), 269 max_sockets_per_proxy_server(pool_type_),
285 max_sockets_per_group(pool_type_), 270 max_sockets_per_group(pool_type_),
286 &transport_for_https_proxy_pool_histograms_,
287 host_resolver_, 271 host_resolver_,
288 socket_factory_, 272 socket_factory_,
289 net_log_))); 273 net_log_)));
290 DCHECK(tcp_https_ret.second); 274 DCHECK(tcp_https_ret.second);
291 275
292 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret = 276 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret =
293 ssl_socket_pools_for_https_proxies_.insert(std::make_pair( 277 ssl_socket_pools_for_https_proxies_.insert(std::make_pair(
294 http_proxy, new SSLClientSocketPool( 278 http_proxy, new SSLClientSocketPool(
295 max_sockets_per_proxy_server(pool_type_), 279 max_sockets_per_proxy_server(pool_type_),
296 max_sockets_per_group(pool_type_), 280 max_sockets_per_group(pool_type_), cert_verifier_,
297 &ssl_for_https_proxy_pool_histograms_, cert_verifier_,
298 channel_id_service_, transport_security_state_, 281 channel_id_service_, transport_security_state_,
299 cert_transparency_verifier_, cert_policy_enforcer_, 282 cert_transparency_verifier_, cert_policy_enforcer_,
300 ssl_session_cache_shard_, socket_factory_, 283 ssl_session_cache_shard_, socket_factory_,
301 tcp_https_ret.first->second /* https proxy */, 284 tcp_https_ret.first->second /* https proxy */,
302 NULL /* no socks proxy */, NULL /* no http proxy */, 285 NULL /* no socks proxy */, NULL /* no http proxy */,
303 ssl_config_service_.get(), net_log_))); 286 ssl_config_service_.get(), net_log_)));
304 DCHECK(tcp_https_ret.second); 287 DCHECK(tcp_https_ret.second);
305 288
306 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = 289 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret =
307 http_proxy_socket_pools_.insert( 290 http_proxy_socket_pools_.insert(
308 std::make_pair( 291 std::make_pair(
309 http_proxy, 292 http_proxy,
310 new HttpProxyClientSocketPool( 293 new HttpProxyClientSocketPool(
311 max_sockets_per_proxy_server(pool_type_), 294 max_sockets_per_proxy_server(pool_type_),
312 max_sockets_per_group(pool_type_), 295 max_sockets_per_group(pool_type_),
313 &http_proxy_pool_histograms_,
314 tcp_http_ret.first->second, 296 tcp_http_ret.first->second,
315 ssl_https_ret.first->second, 297 ssl_https_ret.first->second,
316 net_log_))); 298 net_log_)));
317 299
318 return ret.first->second; 300 return ret.first->second;
319 } 301 }
320 302
321 SSLClientSocketPool* ClientSocketPoolManagerImpl::GetSocketPoolForSSLWithProxy( 303 SSLClientSocketPool* ClientSocketPoolManagerImpl::GetSocketPoolForSSLWithProxy(
322 const HostPortPair& proxy_server) { 304 const HostPortPair& proxy_server) {
323 SSLSocketPoolMap::const_iterator it = 305 SSLSocketPoolMap::const_iterator it =
324 ssl_socket_pools_for_proxies_.find(proxy_server); 306 ssl_socket_pools_for_proxies_.find(proxy_server);
325 if (it != ssl_socket_pools_for_proxies_.end()) 307 if (it != ssl_socket_pools_for_proxies_.end())
326 return it->second; 308 return it->second;
327 309
328 SSLClientSocketPool* new_pool = new SSLClientSocketPool( 310 SSLClientSocketPool* new_pool = new SSLClientSocketPool(
329 max_sockets_per_proxy_server(pool_type_), 311 max_sockets_per_proxy_server(pool_type_),
330 max_sockets_per_group(pool_type_), &ssl_pool_histograms_, cert_verifier_, 312 max_sockets_per_group(pool_type_), cert_verifier_, channel_id_service_,
331 channel_id_service_, transport_security_state_, 313 transport_security_state_, cert_transparency_verifier_,
332 cert_transparency_verifier_, cert_policy_enforcer_, 314 cert_policy_enforcer_, ssl_session_cache_shard_, socket_factory_,
333 ssl_session_cache_shard_, socket_factory_,
334 NULL, /* no tcp pool, we always go through a proxy */ 315 NULL, /* no tcp pool, we always go through a proxy */
335 GetSocketPoolForSOCKSProxy(proxy_server), 316 GetSocketPoolForSOCKSProxy(proxy_server),
336 GetSocketPoolForHTTPProxy(proxy_server), ssl_config_service_.get(), 317 GetSocketPoolForHTTPProxy(proxy_server), ssl_config_service_.get(),
337 net_log_); 318 net_log_);
338 319
339 std::pair<SSLSocketPoolMap::iterator, bool> ret = 320 std::pair<SSLSocketPoolMap::iterator, bool> ret =
340 ssl_socket_pools_for_proxies_.insert(std::make_pair(proxy_server, 321 ssl_socket_pools_for_proxies_.insert(std::make_pair(proxy_server,
341 new_pool)); 322 new_pool));
342 323
343 return ret.first->second; 324 return ret.first->second;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 // We should not flush the socket pools if we added trust to a 366 // We should not flush the socket pools if we added trust to a
386 // cert. 367 // cert.
387 // 368 //
388 // Since the OnCACertChanged method doesn't tell us what 369 // Since the OnCACertChanged method doesn't tell us what
389 // kind of change it is, we have to flush the socket 370 // kind of change it is, we have to flush the socket
390 // pools to be safe. 371 // pools to be safe.
391 FlushSocketPoolsWithError(ERR_NETWORK_CHANGED); 372 FlushSocketPoolsWithError(ERR_NETWORK_CHANGED);
392 } 373 }
393 374
394 } // namespace net 375 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/client_socket_pool_manager_impl.h ('k') | net/socket/deterministic_socket_data_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698