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 #include "net/http/http_network_session.h" | 5 #include "net/http/http_network_session.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/debug/stack_trace.h" | 10 #include "base/debug/stack_trace.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 spdy_max_concurrent_streams_limit(0), | 83 spdy_max_concurrent_streams_limit(0), |
84 time_func(&base::TimeTicks::Now), | 84 time_func(&base::TimeTicks::Now), |
85 force_spdy_over_ssl(true), | 85 force_spdy_over_ssl(true), |
86 force_spdy_always(false), | 86 force_spdy_always(false), |
87 use_alternate_protocols(false), | 87 use_alternate_protocols(false), |
88 alternate_protocol_probability_threshold(1), | 88 alternate_protocol_probability_threshold(1), |
89 enable_websocket_over_spdy(false), | 89 enable_websocket_over_spdy(false), |
90 enable_quic(false), | 90 enable_quic(false), |
91 enable_quic_port_selection(true), | 91 enable_quic_port_selection(true), |
92 enable_quic_time_based_loss_detection(false), | 92 enable_quic_time_based_loss_detection(false), |
| 93 quic_always_require_handshake_confirmation(false), |
93 quic_clock(NULL), | 94 quic_clock(NULL), |
94 quic_random(NULL), | 95 quic_random(NULL), |
95 quic_max_packet_length(kDefaultMaxPacketSize), | 96 quic_max_packet_length(kDefaultMaxPacketSize), |
96 enable_user_alternate_protocol_ports(false), | 97 enable_user_alternate_protocol_ports(false), |
97 quic_crypto_client_stream_factory(NULL) { | 98 quic_crypto_client_stream_factory(NULL) { |
98 quic_supported_versions.push_back(QUIC_VERSION_21); | 99 quic_supported_versions.push_back(QUIC_VERSION_21); |
99 } | 100 } |
100 | 101 |
101 HttpNetworkSession::Params::~Params() {} | 102 HttpNetworkSession::Params::~Params() {} |
102 | 103 |
103 // TODO(mbelshe): Move the socket factories into HttpStreamFactory. | 104 // TODO(mbelshe): Move the socket factories into HttpStreamFactory. |
104 HttpNetworkSession::HttpNetworkSession(const Params& params) | 105 HttpNetworkSession::HttpNetworkSession(const Params& params) |
105 : net_log_(params.net_log), | 106 : net_log_(params.net_log), |
106 network_delegate_(params.network_delegate), | 107 network_delegate_(params.network_delegate), |
107 http_server_properties_(params.http_server_properties), | 108 http_server_properties_(params.http_server_properties), |
108 cert_verifier_(params.cert_verifier), | 109 cert_verifier_(params.cert_verifier), |
109 http_auth_handler_factory_(params.http_auth_handler_factory), | 110 http_auth_handler_factory_(params.http_auth_handler_factory), |
110 proxy_service_(params.proxy_service), | 111 proxy_service_(params.proxy_service), |
111 ssl_config_service_(params.ssl_config_service), | 112 ssl_config_service_(params.ssl_config_service), |
112 normal_socket_pool_manager_( | 113 normal_socket_pool_manager_( |
113 CreateSocketPoolManager(NORMAL_SOCKET_POOL, params)), | 114 CreateSocketPoolManager(NORMAL_SOCKET_POOL, params)), |
114 websocket_socket_pool_manager_( | 115 websocket_socket_pool_manager_( |
115 CreateSocketPoolManager(WEBSOCKET_SOCKET_POOL, params)), | 116 CreateSocketPoolManager(WEBSOCKET_SOCKET_POOL, params)), |
116 quic_stream_factory_(params.host_resolver, | 117 quic_stream_factory_( |
117 params.client_socket_factory ? | 118 params.host_resolver, |
118 params.client_socket_factory : | 119 params.client_socket_factory |
119 net::ClientSocketFactory::GetDefaultFactory(), | 120 ? params.client_socket_factory |
120 params.http_server_properties, | 121 : net::ClientSocketFactory::GetDefaultFactory(), |
121 params.cert_verifier, | 122 params.http_server_properties, |
122 params.channel_id_service, | 123 params.cert_verifier, |
123 params.transport_security_state, | 124 params.channel_id_service, |
124 params.quic_crypto_client_stream_factory, | 125 params.transport_security_state, |
125 params.quic_random ? params.quic_random : | 126 params.quic_crypto_client_stream_factory, |
126 QuicRandom::GetInstance(), | 127 params.quic_random ? params.quic_random : QuicRandom::GetInstance(), |
127 params.quic_clock ? params. quic_clock : | 128 params.quic_clock ? params.quic_clock : new QuicClock(), |
128 new QuicClock(), | 129 params.quic_max_packet_length, |
129 params.quic_max_packet_length, | 130 params.quic_user_agent_id, |
130 params.quic_user_agent_id, | 131 params.quic_supported_versions, |
131 params.quic_supported_versions, | 132 params.enable_quic_port_selection, |
132 params.enable_quic_port_selection, | 133 params.enable_quic_time_based_loss_detection, |
133 params.enable_quic_time_based_loss_detection, | 134 params.quic_always_require_handshake_confirmation, |
134 params.quic_connection_options), | 135 params.quic_connection_options), |
135 spdy_session_pool_(params.host_resolver, | 136 spdy_session_pool_(params.host_resolver, |
136 params.ssl_config_service, | 137 params.ssl_config_service, |
137 params.http_server_properties, | 138 params.http_server_properties, |
138 params.transport_security_state, | 139 params.transport_security_state, |
139 params.force_spdy_single_domain, | 140 params.force_spdy_single_domain, |
140 params.enable_spdy_compression, | 141 params.enable_spdy_compression, |
141 params.enable_spdy_ping_based_connection_checking, | 142 params.enable_spdy_ping_based_connection_checking, |
142 params.spdy_default_protocol, | 143 params.spdy_default_protocol, |
143 params.spdy_stream_initial_recv_window_size, | 144 params.spdy_stream_initial_recv_window_size, |
144 params.spdy_initial_max_concurrent_streams, | 145 params.spdy_initial_max_concurrent_streams, |
145 params.spdy_max_concurrent_streams_limit, | 146 params.spdy_max_concurrent_streams_limit, |
146 params.time_func, | 147 params.time_func, |
147 params.trusted_spdy_proxy), | 148 params.trusted_spdy_proxy), |
148 http_stream_factory_(new HttpStreamFactoryImpl(this, false)), | 149 http_stream_factory_(new HttpStreamFactoryImpl(this, false)), |
149 http_stream_factory_for_websocket_( | 150 http_stream_factory_for_websocket_(new HttpStreamFactoryImpl(this, true)), |
150 new HttpStreamFactoryImpl(this, true)), | |
151 params_(params) { | 151 params_(params) { |
152 DCHECK(proxy_service_); | 152 DCHECK(proxy_service_); |
153 DCHECK(ssl_config_service_.get()); | 153 DCHECK(ssl_config_service_.get()); |
154 CHECK(http_server_properties_); | 154 CHECK(http_server_properties_); |
155 | 155 |
156 for (int i = ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION; | 156 for (int i = ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION; |
157 i <= ALTERNATE_PROTOCOL_MAXIMUM_VALID_VERSION; ++i) { | 157 i <= ALTERNATE_PROTOCOL_MAXIMUM_VALID_VERSION; ++i) { |
158 enabled_protocols_[i - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = false; | 158 enabled_protocols_[i - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = false; |
159 } | 159 } |
160 | 160 |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 case WEBSOCKET_SOCKET_POOL: | 308 case WEBSOCKET_SOCKET_POOL: |
309 return websocket_socket_pool_manager_.get(); | 309 return websocket_socket_pool_manager_.get(); |
310 default: | 310 default: |
311 NOTREACHED(); | 311 NOTREACHED(); |
312 break; | 312 break; |
313 } | 313 } |
314 return NULL; | 314 return NULL; |
315 } | 315 } |
316 | 316 |
317 } // namespace net | 317 } // namespace net |
OLD | NEW |