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

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

Issue 4935001: Allow a non-200 (or non-407) response for a CONNECT request from an HTTPS pro... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Remove stray reference to connect_response_http_stream.h 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 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 5 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
6 #define NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 6 #define NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/ref_counted.h" 11 #include "base/ref_counted.h"
12 #include "base/scoped_ptr.h" 12 #include "base/scoped_ptr.h"
13 #include "base/time.h" 13 #include "base/time.h"
14 #include "net/base/host_resolver.h" 14 #include "net/base/host_resolver.h"
15 #include "net/base/ssl_config_service.h" 15 #include "net/base/ssl_config_service.h"
16 #include "net/http/http_proxy_tunnel_client_socket.h"
16 #include "net/http/http_response_info.h" 17 #include "net/http/http_response_info.h"
17 #include "net/proxy/proxy_server.h" 18 #include "net/proxy/proxy_server.h"
18 #include "net/socket/ssl_client_socket.h" 19 #include "net/socket/ssl_client_socket.h"
19 #include "net/socket/client_socket_pool_base.h" 20 #include "net/socket/client_socket_pool_base.h"
20 #include "net/socket/client_socket_pool_histograms.h" 21 #include "net/socket/client_socket_pool_histograms.h"
21 #include "net/socket/client_socket_pool.h" 22 #include "net/socket/client_socket_pool.h"
22 23
23 namespace net { 24 namespace net {
24 25
25 class ClientSocketFactory; 26 class ClientSocketFactory;
26 class ConnectJobFactory; 27 class ConnectJobFactory;
27 class DnsCertProvenanceChecker; 28 class DnsCertProvenanceChecker;
28 class DnsRRResolver; 29 class DnsRRResolver;
29 class HostPortPair; 30 class HostPortPair;
31 class HttpStream;
30 class HttpProxyClientSocketPool; 32 class HttpProxyClientSocketPool;
31 class HttpProxySocketParams; 33 class HttpProxySocketParams;
32 class SOCKSClientSocketPool; 34 class SOCKSClientSocketPool;
33 class SOCKSSocketParams; 35 class SOCKSSocketParams;
34 class SSLClientSocket; 36 class SSLClientSocket;
35 class SSLHostInfoFactory; 37 class SSLHostInfoFactory;
36 class TCPClientSocketPool; 38 class TCPClientSocketPool;
37 class TCPSocketParams; 39 class TCPSocketParams;
38 struct RRResponse; 40 struct RRResponse;
39 41
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 State next_state_; 154 State next_state_;
153 CompletionCallbackImpl<SSLConnectJob> callback_; 155 CompletionCallbackImpl<SSLConnectJob> callback_;
154 scoped_ptr<ClientSocketHandle> transport_socket_handle_; 156 scoped_ptr<ClientSocketHandle> transport_socket_handle_;
155 scoped_ptr<SSLClientSocket> ssl_socket_; 157 scoped_ptr<SSLClientSocket> ssl_socket_;
156 scoped_ptr<SSLHostInfo> ssl_host_info_; 158 scoped_ptr<SSLHostInfo> ssl_host_info_;
157 159
158 // The time the DoSSLConnect() method was called. 160 // The time the DoSSLConnect() method was called.
159 base::TimeTicks ssl_connect_start_time_; 161 base::TimeTicks ssl_connect_start_time_;
160 162
161 HttpResponseInfo error_response_info_; 163 HttpResponseInfo error_response_info_;
164 scoped_ptr<HttpProxyTunnelClientSocket> pending_https_proxy_response_socket_;
162 165
163 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob); 166 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob);
164 }; 167 };
165 168
166 class SSLClientSocketPool : public ClientSocketPool, 169 class SSLClientSocketPool : public ClientSocketPool,
167 public SSLConfigService::Observer { 170 public SSLConfigService::Observer {
168 public: 171 public:
169 // Only the pools that will be used are required. i.e. if you never 172 // Only the pools that will be used are required. i.e. if you never
170 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL. 173 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL.
171 SSLClientSocketPool( 174 SSLClientSocketPool(
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 const scoped_refptr<SSLConfigService> ssl_config_service_; 287 const scoped_refptr<SSLConfigService> ssl_config_service_;
285 288
286 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool); 289 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool);
287 }; 290 };
288 291
289 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams); 292 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams);
290 293
291 } // namespace net 294 } // namespace net
292 295
293 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 296 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698