OLD | NEW |
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 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_ | 5 #ifndef NET_HTTP_HTTP_NETWORK_SESSION_H_ |
6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ | 6 #define NET_HTTP_HTTP_NETWORK_SESSION_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 TransportSecurityState* transport_security_state; | 69 TransportSecurityState* transport_security_state; |
70 CTVerifier* cert_transparency_verifier; | 70 CTVerifier* cert_transparency_verifier; |
71 ProxyService* proxy_service; | 71 ProxyService* proxy_service; |
72 std::string ssl_session_cache_shard; | 72 std::string ssl_session_cache_shard; |
73 SSLConfigService* ssl_config_service; | 73 SSLConfigService* ssl_config_service; |
74 HttpAuthHandlerFactory* http_auth_handler_factory; | 74 HttpAuthHandlerFactory* http_auth_handler_factory; |
75 NetworkDelegate* network_delegate; | 75 NetworkDelegate* network_delegate; |
76 base::WeakPtr<HttpServerProperties> http_server_properties; | 76 base::WeakPtr<HttpServerProperties> http_server_properties; |
77 NetLog* net_log; | 77 NetLog* net_log; |
78 HostMappingRules* host_mapping_rules; | 78 HostMappingRules* host_mapping_rules; |
79 bool force_http_pipelining; | |
80 bool ignore_certificate_errors; | 79 bool ignore_certificate_errors; |
81 bool http_pipelining_enabled; | |
82 uint16 testing_fixed_http_port; | 80 uint16 testing_fixed_http_port; |
83 uint16 testing_fixed_https_port; | 81 uint16 testing_fixed_https_port; |
84 | 82 |
85 bool force_spdy_single_domain; | 83 bool force_spdy_single_domain; |
86 bool enable_spdy_compression; | 84 bool enable_spdy_compression; |
87 bool enable_spdy_ping_based_connection_checking; | 85 bool enable_spdy_ping_based_connection_checking; |
88 NextProto spdy_default_protocol; | 86 NextProto spdy_default_protocol; |
89 // The protocols supported by NPN (next protocol negotiation) during the | 87 // The protocols supported by NPN (next protocol negotiation) during the |
90 // SSL handshake as well as by HTTP Alternate-Protocol. | 88 // SSL handshake as well as by HTTP Alternate-Protocol. |
91 // TODO(mmenke): This is currently empty by default, and alternate | 89 // TODO(mmenke): This is currently empty by default, and alternate |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 // responsible for deleting the returned value. | 184 // responsible for deleting the returned value. |
187 base::Value* SpdySessionPoolInfoToValue() const; | 185 base::Value* SpdySessionPoolInfoToValue() const; |
188 | 186 |
189 // Creates a Value summary of the state of the QUIC sessions and | 187 // Creates a Value summary of the state of the QUIC sessions and |
190 // configuration. The caller is responsible for deleting the returned value. | 188 // configuration. The caller is responsible for deleting the returned value. |
191 base::Value* QuicInfoToValue() const; | 189 base::Value* QuicInfoToValue() const; |
192 | 190 |
193 void CloseAllConnections(); | 191 void CloseAllConnections(); |
194 void CloseIdleConnections(); | 192 void CloseIdleConnections(); |
195 | 193 |
196 bool force_http_pipelining() const { return force_http_pipelining_; } | |
197 | |
198 // Returns the original Params used to construct this session. | 194 // Returns the original Params used to construct this session. |
199 const Params& params() const { return params_; } | 195 const Params& params() const { return params_; } |
200 | 196 |
201 void set_http_pipelining_enabled(bool enable) { | |
202 params_.http_pipelining_enabled = enable; | |
203 } | |
204 | |
205 bool IsProtocolEnabled(AlternateProtocol protocol) const; | 197 bool IsProtocolEnabled(AlternateProtocol protocol) const; |
206 | 198 |
207 void GetNextProtos(std::vector<std::string>* next_protos) const; | 199 void GetNextProtos(std::vector<std::string>* next_protos) const; |
208 | 200 |
209 // Convenience function for searching through |params_| for | 201 // Convenience function for searching through |params_| for |
210 // |forced_spdy_exclusions|. | 202 // |forced_spdy_exclusions|. |
211 bool HasSpdyExclusion(HostPortPair host_port_pair) const; | 203 bool HasSpdyExclusion(HostPortPair host_port_pair) const; |
212 | 204 |
213 private: | 205 private: |
214 friend class base::RefCounted<HttpNetworkSession>; | 206 friend class base::RefCounted<HttpNetworkSession>; |
215 friend class HttpNetworkSessionPeer; | 207 friend class HttpNetworkSessionPeer; |
216 | 208 |
217 ~HttpNetworkSession(); | 209 ~HttpNetworkSession(); |
218 | 210 |
219 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type); | 211 ClientSocketPoolManager* GetSocketPoolManager(SocketPoolType pool_type); |
220 | 212 |
221 NetLog* const net_log_; | 213 NetLog* const net_log_; |
222 NetworkDelegate* const network_delegate_; | 214 NetworkDelegate* const network_delegate_; |
223 const base::WeakPtr<HttpServerProperties> http_server_properties_; | 215 const base::WeakPtr<HttpServerProperties> http_server_properties_; |
224 CertVerifier* const cert_verifier_; | 216 CertVerifier* const cert_verifier_; |
225 HttpAuthHandlerFactory* const http_auth_handler_factory_; | 217 HttpAuthHandlerFactory* const http_auth_handler_factory_; |
226 bool force_http_pipelining_; | |
227 | 218 |
228 // Not const since it's modified by HttpNetworkSessionPeer for testing. | 219 // Not const since it's modified by HttpNetworkSessionPeer for testing. |
229 ProxyService* proxy_service_; | 220 ProxyService* proxy_service_; |
230 const scoped_refptr<SSLConfigService> ssl_config_service_; | 221 const scoped_refptr<SSLConfigService> ssl_config_service_; |
231 | 222 |
232 HttpAuthCache http_auth_cache_; | 223 HttpAuthCache http_auth_cache_; |
233 SSLClientAuthCache ssl_client_auth_cache_; | 224 SSLClientAuthCache ssl_client_auth_cache_; |
234 scoped_ptr<ClientSocketPoolManager> normal_socket_pool_manager_; | 225 scoped_ptr<ClientSocketPoolManager> normal_socket_pool_manager_; |
235 scoped_ptr<ClientSocketPoolManager> websocket_socket_pool_manager_; | 226 scoped_ptr<ClientSocketPoolManager> websocket_socket_pool_manager_; |
236 QuicStreamFactory quic_stream_factory_; | 227 QuicStreamFactory quic_stream_factory_; |
237 SpdySessionPool spdy_session_pool_; | 228 SpdySessionPool spdy_session_pool_; |
238 scoped_ptr<HttpStreamFactory> http_stream_factory_; | 229 scoped_ptr<HttpStreamFactory> http_stream_factory_; |
239 scoped_ptr<HttpStreamFactory> http_stream_factory_for_websocket_; | 230 scoped_ptr<HttpStreamFactory> http_stream_factory_for_websocket_; |
240 std::set<HttpResponseBodyDrainer*> response_drainers_; | 231 std::set<HttpResponseBodyDrainer*> response_drainers_; |
241 | 232 |
242 // TODO(jgraettinger): Remove when Huffman collection is complete. | 233 // TODO(jgraettinger): Remove when Huffman collection is complete. |
243 scoped_ptr<HpackHuffmanAggregator> huffman_aggregator_; | 234 scoped_ptr<HpackHuffmanAggregator> huffman_aggregator_; |
244 | 235 |
245 std::vector<std::string> next_protos_; | 236 std::vector<std::string> next_protos_; |
246 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; | 237 bool enabled_protocols_[NUM_VALID_ALTERNATE_PROTOCOLS]; |
247 | 238 |
248 Params params_; | 239 Params params_; |
249 }; | 240 }; |
250 | 241 |
251 } // namespace net | 242 } // namespace net |
252 | 243 |
253 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ | 244 #endif // NET_HTTP_HTTP_NETWORK_SESSION_H_ |
OLD | NEW |