Chromium Code Reviews

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: Cleaned up Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | 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_response_info.h" 16 #include "net/http/http_response_info.h"
17 #include "net/proxy/proxy_server.h" 17 #include "net/proxy/proxy_server.h"
18 #include "net/socket/ssl_client_socket.h" 18 #include "net/socket/ssl_client_socket.h"
19 #include "net/socket/client_socket_pool_base.h" 19 #include "net/socket/client_socket_pool_base.h"
20 #include "net/socket/client_socket_pool_histograms.h" 20 #include "net/socket/client_socket_pool_histograms.h"
21 #include "net/socket/client_socket_pool.h" 21 #include "net/socket/client_socket_pool.h"
22 22
23 namespace net { 23 namespace net {
24 24
25 class ClientSocketFactory; 25 class ClientSocketFactory;
26 class ConnectJobFactory; 26 class ConnectJobFactory;
27 class DnsCertProvenanceChecker; 27 class DnsCertProvenanceChecker;
28 class DnsRRResolver; 28 class DnsRRResolver;
29 class HostPortPair; 29 class HostPortPair;
30 class HttpStream;
30 class HttpProxyClientSocketPool; 31 class HttpProxyClientSocketPool;
31 class HttpProxySocketParams; 32 class HttpProxySocketParams;
32 class SOCKSClientSocketPool; 33 class SOCKSClientSocketPool;
33 class SOCKSSocketParams; 34 class SOCKSSocketParams;
34 class SSLClientSocket; 35 class SSLClientSocket;
35 class SSLHostInfoFactory; 36 class SSLHostInfoFactory;
36 class TCPClientSocketPool; 37 class TCPClientSocketPool;
37 class TCPSocketParams; 38 class TCPSocketParams;
38 struct RRResponse; 39 struct RRResponse;
39 40
(...skipping 112 matching lines...)
152 State next_state_; 153 State next_state_;
153 CompletionCallbackImpl<SSLConnectJob> callback_; 154 CompletionCallbackImpl<SSLConnectJob> callback_;
154 scoped_ptr<ClientSocketHandle> transport_socket_handle_; 155 scoped_ptr<ClientSocketHandle> transport_socket_handle_;
155 scoped_ptr<SSLClientSocket> ssl_socket_; 156 scoped_ptr<SSLClientSocket> ssl_socket_;
156 scoped_ptr<SSLHostInfo> ssl_host_info_; 157 scoped_ptr<SSLHostInfo> ssl_host_info_;
157 158
158 // The time the DoSSLConnect() method was called. 159 // The time the DoSSLConnect() method was called.
159 base::TimeTicks ssl_connect_start_time_; 160 base::TimeTicks ssl_connect_start_time_;
160 161
161 HttpResponseInfo error_response_info_; 162 HttpResponseInfo error_response_info_;
163 scoped_ptr<HttpStream> pending_https_proxy_response_stream_;
162 164
163 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob); 165 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob);
164 }; 166 };
165 167
166 class SSLClientSocketPool : public ClientSocketPool, 168 class SSLClientSocketPool : public ClientSocketPool,
167 public SSLConfigService::Observer { 169 public SSLConfigService::Observer {
168 public: 170 public:
169 // Only the pools that will be used are required. i.e. if you never 171 // 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. 172 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL.
171 SSLClientSocketPool( 173 SSLClientSocketPool(
(...skipping 112 matching lines...)
284 const scoped_refptr<SSLConfigService> ssl_config_service_; 286 const scoped_refptr<SSLConfigService> ssl_config_service_;
285 287
286 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool); 288 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool);
287 }; 289 };
288 290
289 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams); 291 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams);
290 292
291 } // namespace net 293 } // namespace net
292 294
293 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 295 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine