| 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/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 DCHECK(ssl_config_service_.get()); | 201 DCHECK(ssl_config_service_.get()); |
| 202 CHECK(http_server_properties_); | 202 CHECK(http_server_properties_); |
| 203 | 203 |
| 204 const std::string ssl_session_cache_shard = | 204 const std::string ssl_session_cache_shard = |
| 205 "http_network_session/" + base::IntToString(g_next_shard_id.GetNext()); | 205 "http_network_session/" + base::IntToString(g_next_shard_id.GetNext()); |
| 206 normal_socket_pool_manager_.reset(CreateSocketPoolManager( | 206 normal_socket_pool_manager_.reset(CreateSocketPoolManager( |
| 207 NORMAL_SOCKET_POOL, params, ssl_session_cache_shard)); | 207 NORMAL_SOCKET_POOL, params, ssl_session_cache_shard)); |
| 208 websocket_socket_pool_manager_.reset(CreateSocketPoolManager( | 208 websocket_socket_pool_manager_.reset(CreateSocketPoolManager( |
| 209 WEBSOCKET_SOCKET_POOL, params, ssl_session_cache_shard)); | 209 WEBSOCKET_SOCKET_POOL, params, ssl_session_cache_shard)); |
| 210 | 210 |
| 211 for (int i = ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION; | |
| 212 i <= ALTERNATE_PROTOCOL_MAXIMUM_VALID_VERSION; ++i) { | |
| 213 enabled_protocols_[i - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = false; | |
| 214 } | |
| 215 | |
| 216 // TODO(rtenneti): https://crbug.com/116575 | |
| 217 // Consider combining the NextProto and AlternateProtocol. | |
| 218 if (params_.enable_http2) { | 211 if (params_.enable_http2) { |
| 219 next_protos_.push_back(kProtoHTTP2); | 212 next_protos_.push_back(kProtoHTTP2); |
| 220 AlternateProtocol alternate = AlternateProtocolFromNextProto(kProtoHTTP2); | |
| 221 enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = | |
| 222 true; | |
| 223 } | |
| 224 | |
| 225 if (params_.enable_quic) { | |
| 226 AlternateProtocol alternate = | |
| 227 AlternateProtocolFromNextProto(kProtoQUIC1SPDY3); | |
| 228 enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = | |
| 229 true; | |
| 230 } | 213 } |
| 231 | 214 |
| 232 next_protos_.push_back(kProtoHTTP11); | 215 next_protos_.push_back(kProtoHTTP11); |
| 233 | 216 |
| 234 http_server_properties_->SetMaxServerConfigsStoredInProperties( | 217 http_server_properties_->SetMaxServerConfigsStoredInProperties( |
| 235 params.quic_max_server_configs_stored_in_properties); | 218 params.quic_max_server_configs_stored_in_properties); |
| 236 | 219 |
| 237 memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind( | 220 memory_pressure_listener_.reset(new base::MemoryPressureListener(base::Bind( |
| 238 &HttpNetworkSession::OnMemoryPressure, base::Unretained(this)))); | 221 &HttpNetworkSession::OnMemoryPressure, base::Unretained(this)))); |
| 239 } | 222 } |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 quic_stream_factory_.CloseAllSessions(ERR_ABORTED, QUIC_INTERNAL_ERROR); | 332 quic_stream_factory_.CloseAllSessions(ERR_ABORTED, QUIC_INTERNAL_ERROR); |
| 350 } | 333 } |
| 351 | 334 |
| 352 void HttpNetworkSession::CloseIdleConnections() { | 335 void HttpNetworkSession::CloseIdleConnections() { |
| 353 normal_socket_pool_manager_->CloseIdleSockets(); | 336 normal_socket_pool_manager_->CloseIdleSockets(); |
| 354 websocket_socket_pool_manager_->CloseIdleSockets(); | 337 websocket_socket_pool_manager_->CloseIdleSockets(); |
| 355 spdy_session_pool_.CloseCurrentIdleSessions(); | 338 spdy_session_pool_.CloseCurrentIdleSessions(); |
| 356 } | 339 } |
| 357 | 340 |
| 358 bool HttpNetworkSession::IsProtocolEnabled(AlternateProtocol protocol) const { | 341 bool HttpNetworkSession::IsProtocolEnabled(AlternateProtocol protocol) const { |
| 359 DCHECK(IsAlternateProtocolValid(protocol)); | 342 switch (protocol) { |
| 360 return enabled_protocols_[ | 343 case NPN_HTTP_2: |
| 361 protocol - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION]; | 344 return params_.enable_http2; |
| 345 case QUIC: |
| 346 return params_.enable_quic; |
| 347 case UNINITIALIZED_ALTERNATE_PROTOCOL: |
| 348 NOTREACHED(); |
| 349 return false; |
| 350 } |
| 351 NOTREACHED(); |
| 352 return false; |
| 362 } | 353 } |
| 363 | 354 |
| 364 void HttpNetworkSession::GetAlpnProtos(NextProtoVector* alpn_protos) const { | 355 void HttpNetworkSession::GetAlpnProtos(NextProtoVector* alpn_protos) const { |
| 365 *alpn_protos = next_protos_; | 356 *alpn_protos = next_protos_; |
| 366 } | 357 } |
| 367 | 358 |
| 368 void HttpNetworkSession::GetSSLConfig(const HttpRequestInfo& request, | 359 void HttpNetworkSession::GetSSLConfig(const HttpRequestInfo& request, |
| 369 SSLConfig* server_config, | 360 SSLConfig* server_config, |
| 370 SSLConfig* proxy_config) const { | 361 SSLConfig* proxy_config) const { |
| 371 ssl_config_service_->GetSSLConfig(server_config); | 362 ssl_config_service_->GetSSLConfig(server_config); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 398 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: | 389 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: |
| 399 break; | 390 break; |
| 400 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: | 391 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: |
| 401 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: | 392 case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: |
| 402 CloseIdleConnections(); | 393 CloseIdleConnections(); |
| 403 break; | 394 break; |
| 404 } | 395 } |
| 405 } | 396 } |
| 406 | 397 |
| 407 } // namespace net | 398 } // namespace net |
| OLD | NEW |