| 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 |