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

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

Issue 7024017: Fix --host-rules command switch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/create/Create/ Created 9 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
« no previous file with comments | « net/http/http_stream_factory_impl_job.cc ('k') | net/socket/client_socket_pool_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ 9 #ifndef NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_
10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ 10 #define NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_
11 #pragma once 11 #pragma once
12 12
13 #include <map> 13 #include <map>
14 #include "base/basictypes.h" 14 #include "base/basictypes.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
17 #include "base/stl_util-inl.h" 17 #include "base/stl_util-inl.h"
18 #include "base/template_util.h" 18 #include "base/template_util.h"
19 #include "base/threading/non_thread_safe.h" 19 #include "base/threading/non_thread_safe.h"
20 #include "net/base/cert_database.h" 20 #include "net/base/cert_database.h"
21 #include "net/base/completion_callback.h" 21 #include "net/base/completion_callback.h"
22 #include "net/base/net_api.h" 22 #include "net/base/net_api.h"
23 #include "net/base/request_priority.h"
23 #include "net/socket/client_socket_pool_histograms.h" 24 #include "net/socket/client_socket_pool_histograms.h"
24 25
26 class GURL;
25 class Value; 27 class Value;
26 28
27 namespace net { 29 namespace net {
28 30
29 class BoundNetLog; 31 class BoundNetLog;
30 class CertVerifier; 32 class CertVerifier;
31 class ClientSocketFactory; 33 class ClientSocketFactory;
32 class ClientSocketHandle; 34 class ClientSocketHandle;
33 class ClientSocketPoolHistograms; 35 class ClientSocketPoolHistograms;
34 class DnsCertProvenanceChecker; 36 class DnsCertProvenanceChecker;
35 class DnsRRResolver; 37 class DnsRRResolver;
36 class HttpNetworkSession; 38 class HttpNetworkSession;
39 class HttpRequestHeaders;
37 class HostPortPair; 40 class HostPortPair;
38 class HttpProxyClientSocketPool; 41 class HttpProxyClientSocketPool;
39 class HostResolver; 42 class HostResolver;
40 class NetLog; 43 class NetLog;
41 class ProxyInfo; 44 class ProxyInfo;
42 class ProxyService; 45 class ProxyService;
43 class SOCKSClientSocketPool; 46 class SOCKSClientSocketPool;
44 class SSLClientSocketPool; 47 class SSLClientSocketPool;
45 class SSLConfigService; 48 class SSLConfigService;
46 class SSLHostInfoFactory; 49 class SSLHostInfoFactory;
47 class TransportClientSocketPool; 50 class TransportClientSocketPool;
48 51
49 struct HttpRequestInfo;
50 struct SSLConfig; 52 struct SSLConfig;
51 53
52 namespace internal { 54 namespace internal {
53 55
54 // A helper class for auto-deleting Values in the destructor. 56 // A helper class for auto-deleting Values in the destructor.
55 template <typename Key, typename Value> 57 template <typename Key, typename Value>
56 class OwnedPoolMap : public std::map<Key, Value> { 58 class OwnedPoolMap : public std::map<Key, Value> {
57 public: 59 public:
58 OwnedPoolMap() { 60 OwnedPoolMap() {
59 COMPILE_ASSERT(base::is_pointer<Value>::value, 61 COMPILE_ASSERT(base::is_pointer<Value>::value,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 103
102 static int max_sockets_per_group(); 104 static int max_sockets_per_group();
103 NET_API static void set_max_sockets_per_group(int socket_count); 105 NET_API static void set_max_sockets_per_group(int socket_count);
104 NET_API static void set_max_sockets_per_proxy_server(int socket_count); 106 NET_API static void set_max_sockets_per_proxy_server(int socket_count);
105 107
106 // A helper method that uses the passed in proxy information to initialize a 108 // A helper method that uses the passed in proxy information to initialize a
107 // ClientSocketHandle with the relevant socket pool. Use this method for 109 // ClientSocketHandle with the relevant socket pool. Use this method for
108 // HTTP/HTTPS requests. |ssl_config_for_origin| is only used if the request 110 // HTTP/HTTPS requests. |ssl_config_for_origin| is only used if the request
109 // uses SSL and |ssl_config_for_proxy| is used if the proxy server is HTTPS. 111 // uses SSL and |ssl_config_for_proxy| is used if the proxy server is HTTPS.
110 static int InitSocketHandleForHttpRequest( 112 static int InitSocketHandleForHttpRequest(
111 const HttpRequestInfo& request_info, 113 const GURL& request_url,
114 const GURL& request_referrer,
115 const HttpRequestHeaders& request_extra_headers,
116 int request_load_flags,
117 RequestPriority request_priority,
112 HttpNetworkSession* session, 118 HttpNetworkSession* session,
113 const ProxyInfo& proxy_info, 119 const ProxyInfo& proxy_info,
114 bool force_spdy_over_ssl, 120 bool force_spdy_over_ssl,
115 bool want_spdy_over_npn, 121 bool want_spdy_over_npn,
116 const SSLConfig& ssl_config_for_origin, 122 const SSLConfig& ssl_config_for_origin,
117 const SSLConfig& ssl_config_for_proxy, 123 const SSLConfig& ssl_config_for_proxy,
118 const BoundNetLog& net_log, 124 const BoundNetLog& net_log,
119 ClientSocketHandle* socket_handle, 125 ClientSocketHandle* socket_handle,
120 CompletionCallback* callback); 126 CompletionCallback* callback);
121 127
122 // A helper method that uses the passed in proxy information to initialize a 128 // A helper method that uses the passed in proxy information to initialize a
123 // ClientSocketHandle with the relevant socket pool. Use this method for 129 // ClientSocketHandle with the relevant socket pool. Use this method for
124 // a raw socket connection to a host-port pair (that needs to tunnel through 130 // a raw socket connection to a host-port pair (that needs to tunnel through
125 // the proxies). 131 // the proxies).
126 NET_API static int InitSocketHandleForRawConnect( 132 NET_API static int InitSocketHandleForRawConnect(
127 const HostPortPair& host_port_pair, 133 const HostPortPair& host_port_pair,
128 HttpNetworkSession* session, 134 HttpNetworkSession* session,
129 const ProxyInfo& proxy_info, 135 const ProxyInfo& proxy_info,
130 const SSLConfig& ssl_config_for_origin, 136 const SSLConfig& ssl_config_for_origin,
131 const SSLConfig& ssl_config_for_proxy, 137 const SSLConfig& ssl_config_for_proxy,
132 const BoundNetLog& net_log, 138 const BoundNetLog& net_log,
133 ClientSocketHandle* socket_handle, 139 ClientSocketHandle* socket_handle,
134 CompletionCallback* callback); 140 CompletionCallback* callback);
135 141
136 // Similar to InitSocketHandleForHttpRequest except that it initiates the 142 // Similar to InitSocketHandleForHttpRequest except that it initiates the
137 // desired number of preconnect streams from the relevant socket pool. 143 // desired number of preconnect streams from the relevant socket pool.
138 static int PreconnectSocketsForHttpRequest( 144 static int PreconnectSocketsForHttpRequest(
139 const HttpRequestInfo& request_info, 145 const GURL& request_url,
146 const GURL& request_referrer,
147 const HttpRequestHeaders& request_extra_headers,
148 int request_load_flags,
149 RequestPriority request_priority,
140 HttpNetworkSession* session, 150 HttpNetworkSession* session,
141 const ProxyInfo& proxy_info, 151 const ProxyInfo& proxy_info,
142 bool force_spdy_over_ssl, 152 bool force_spdy_over_ssl,
143 bool want_spdy_over_npn, 153 bool want_spdy_over_npn,
144 const SSLConfig& ssl_config_for_origin, 154 const SSLConfig& ssl_config_for_origin,
145 const SSLConfig& ssl_config_for_proxy, 155 const SSLConfig& ssl_config_for_proxy,
146 const BoundNetLog& net_log, 156 const BoundNetLog& net_log,
147 int num_preconnect_streams); 157 int num_preconnect_streams);
148 158
149 // Creates a Value summary of the state of the socket pools. The caller is 159 // Creates a Value summary of the state of the socket pools. The caller is
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 214
205 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_; 215 ClientSocketPoolHistograms ssl_socket_pool_for_proxies_histograms_;
206 SSLSocketPoolMap ssl_socket_pools_for_proxies_; 216 SSLSocketPoolMap ssl_socket_pools_for_proxies_;
207 217
208 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager); 218 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolManager);
209 }; 219 };
210 220
211 } // namespace net 221 } // namespace net
212 222
213 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_ 223 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_MANAGER_H_
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_job.cc ('k') | net/socket/client_socket_pool_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698