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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 96 |
97 return http2_settings; | 97 return http2_settings; |
98 } | 98 } |
99 | 99 |
100 } // unnamed namespace | 100 } // unnamed namespace |
101 | 101 |
102 HttpNetworkSession::Params::Params() | 102 HttpNetworkSession::Params::Params() |
103 : client_socket_factory(nullptr), | 103 : client_socket_factory(nullptr), |
104 host_resolver(nullptr), | 104 host_resolver(nullptr), |
105 cert_verifier(nullptr), | 105 cert_verifier(nullptr), |
| 106 enable_server_push_cancellation(false), |
106 channel_id_service(nullptr), | 107 channel_id_service(nullptr), |
107 transport_security_state(nullptr), | 108 transport_security_state(nullptr), |
108 cert_transparency_verifier(nullptr), | 109 cert_transparency_verifier(nullptr), |
109 ct_policy_enforcer(nullptr), | 110 ct_policy_enforcer(nullptr), |
110 proxy_service(nullptr), | 111 proxy_service(nullptr), |
111 ssl_config_service(nullptr), | 112 ssl_config_service(nullptr), |
112 http_auth_handler_factory(nullptr), | 113 http_auth_handler_factory(nullptr), |
113 net_log(nullptr), | 114 net_log(nullptr), |
114 host_mapping_rules(nullptr), | 115 host_mapping_rules(nullptr), |
115 socket_performance_watcher_factory(nullptr), | 116 socket_performance_watcher_factory(nullptr), |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 | 166 |
166 HttpNetworkSession::Params::Params(const Params& other) = default; | 167 HttpNetworkSession::Params::Params(const Params& other) = default; |
167 | 168 |
168 HttpNetworkSession::Params::~Params() {} | 169 HttpNetworkSession::Params::~Params() {} |
169 | 170 |
170 // TODO(mbelshe): Move the socket factories into HttpStreamFactory. | 171 // TODO(mbelshe): Move the socket factories into HttpStreamFactory. |
171 HttpNetworkSession::HttpNetworkSession(const Params& params) | 172 HttpNetworkSession::HttpNetworkSession(const Params& params) |
172 : net_log_(params.net_log), | 173 : net_log_(params.net_log), |
173 http_server_properties_(params.http_server_properties), | 174 http_server_properties_(params.http_server_properties), |
174 cert_verifier_(params.cert_verifier), | 175 cert_verifier_(params.cert_verifier), |
| 176 enable_server_push_cancellation_(params.enable_server_push_cancellation), |
175 http_auth_handler_factory_(params.http_auth_handler_factory), | 177 http_auth_handler_factory_(params.http_auth_handler_factory), |
176 proxy_service_(params.proxy_service), | 178 proxy_service_(params.proxy_service), |
177 ssl_config_service_(params.ssl_config_service), | 179 ssl_config_service_(params.ssl_config_service), |
178 push_delegate_(nullptr), | 180 push_delegate_(nullptr), |
179 quic_stream_factory_( | 181 quic_stream_factory_( |
180 params.net_log, | 182 params.net_log, |
181 params.host_resolver, | 183 params.host_resolver, |
182 params.ssl_config_service, | 184 params.ssl_config_service, |
183 params.client_socket_factory | 185 params.client_socket_factory |
184 ? params.client_socket_factory | 186 ? params.client_socket_factory |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 return params_.enable_http2; | 391 return params_.enable_http2; |
390 case kProtoQUIC: | 392 case kProtoQUIC: |
391 return IsQuicEnabled(); | 393 return IsQuicEnabled(); |
392 } | 394 } |
393 NOTREACHED(); | 395 NOTREACHED(); |
394 return false; | 396 return false; |
395 } | 397 } |
396 | 398 |
397 void HttpNetworkSession::SetServerPushDelegate( | 399 void HttpNetworkSession::SetServerPushDelegate( |
398 std::unique_ptr<ServerPushDelegate> push_delegate) { | 400 std::unique_ptr<ServerPushDelegate> push_delegate) { |
399 DCHECK(!push_delegate_ && push_delegate); | 401 DCHECK(push_delegate); |
| 402 if (!enable_server_push_cancellation_ || push_delegate_) |
| 403 return; |
400 | 404 |
401 push_delegate_ = std::move(push_delegate); | 405 push_delegate_ = std::move(push_delegate); |
402 spdy_session_pool_.set_server_push_delegate(push_delegate_.get()); | 406 spdy_session_pool_.set_server_push_delegate(push_delegate_.get()); |
403 quic_stream_factory_.set_server_push_delegate(push_delegate_.get()); | 407 quic_stream_factory_.set_server_push_delegate(push_delegate_.get()); |
404 } | 408 } |
405 | 409 |
406 void HttpNetworkSession::GetAlpnProtos(NextProtoVector* alpn_protos) const { | 410 void HttpNetworkSession::GetAlpnProtos(NextProtoVector* alpn_protos) const { |
407 *alpn_protos = next_protos_; | 411 *alpn_protos = next_protos_; |
408 } | 412 } |
409 | 413 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 CloseIdleConnections(); | 484 CloseIdleConnections(); |
481 break; | 485 break; |
482 } | 486 } |
483 } | 487 } |
484 | 488 |
485 void HttpNetworkSession::OnPurgeMemory() { | 489 void HttpNetworkSession::OnPurgeMemory() { |
486 CloseIdleConnections(); | 490 CloseIdleConnections(); |
487 } | 491 } |
488 | 492 |
489 } // namespace net | 493 } // namespace net |
OLD | NEW |