| Index: net/http/http_network_session.cc
|
| diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
|
| index fda084eab56900bcf246229fa108e0e9c72f91f0..d1fa02c77bb7ada11e5301866ce408078658ad3d 100644
|
| --- a/net/http/http_network_session.cc
|
| +++ b/net/http/http_network_session.cc
|
| @@ -103,6 +103,7 @@ HttpNetworkSession::Params::Params()
|
| : client_socket_factory(nullptr),
|
| host_resolver(nullptr),
|
| cert_verifier(nullptr),
|
| + enable_server_push_cancellation(false),
|
| channel_id_service(nullptr),
|
| transport_security_state(nullptr),
|
| cert_transparency_verifier(nullptr),
|
| @@ -172,6 +173,7 @@ HttpNetworkSession::HttpNetworkSession(const Params& params)
|
| : net_log_(params.net_log),
|
| http_server_properties_(params.http_server_properties),
|
| cert_verifier_(params.cert_verifier),
|
| + enable_server_push_cancellation_(params.enable_server_push_cancellation),
|
| http_auth_handler_factory_(params.http_auth_handler_factory),
|
| proxy_service_(params.proxy_service),
|
| ssl_config_service_(params.ssl_config_service),
|
| @@ -396,7 +398,9 @@ bool HttpNetworkSession::IsProtocolEnabled(NextProto protocol) const {
|
|
|
| void HttpNetworkSession::SetServerPushDelegate(
|
| std::unique_ptr<ServerPushDelegate> push_delegate) {
|
| - DCHECK(!push_delegate_ && push_delegate);
|
| + DCHECK(push_delegate);
|
| + if (!enable_server_push_cancellation_ || push_delegate_)
|
| + return;
|
|
|
| push_delegate_ = std::move(push_delegate);
|
| spdy_session_pool_.set_server_push_delegate(push_delegate_.get());
|
|
|