| OLD | NEW | 
|    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...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  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...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  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_ | 
| OLD | NEW |