Index: net/http/http_network_session.cc |
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc |
index 2936e12e5048e5b176db85fc7768bf0e4b7b697c..1e5219ff6c0cdab5d6ef9b504386e9bd7226298b 100644 |
--- a/net/http/http_network_session.cc |
+++ b/net/http/http_network_session.cc |
@@ -87,6 +87,7 @@ HttpNetworkSession::Params::Params() |
testing_fixed_http_port(0), |
testing_fixed_https_port(0), |
enable_tcp_fast_open_for_ssl(false), |
+ dynamic_shared_params(NULL), |
mmenke
2016/12/13 18:48:54
nullptr is now preferred (Feel free to change the
pmarko
2016/12/19 21:25:11
Done.
|
enable_spdy_ping_based_connection_checking(true), |
enable_http2(true), |
spdy_session_max_recv_window_size(kSpdySessionMaxRecvWindowSize), |
@@ -136,6 +137,19 @@ HttpNetworkSession::Params::Params(const Params& other) = default; |
HttpNetworkSession::Params::~Params() {} |
+bool HttpNetworkSession::Params::enable_quic_for_new_streams() const { |
+ return enable_quic && (!dynamic_shared_params || |
+ dynamic_shared_params->enable_quic_for_new_streams); |
mmenke
2016/12/13 18:48:54
I assume we do need both this and enable_quic, and
Bence
2016/12/13 19:24:45
Correct. For example, |enable_quic| can be cleare
pmarko
2016/12/19 21:25:11
Reduced to only enable_quic, the logic is now outs
|
+} |
+ |
+HttpNetworkSession::DynamicSharedParams::DynamicSharedParams() |
+ : enable_quic_for_new_streams(true) {} |
+ |
+HttpNetworkSession::DynamicSharedParams::DynamicSharedParams( |
+ const DynamicSharedParams& other) = default; |
+ |
+HttpNetworkSession::DynamicSharedParams::~DynamicSharedParams() {} |
+ |
// TODO(mbelshe): Move the socket factories into HttpStreamFactory. |
HttpNetworkSession::HttpNetworkSession(const Params& params) |
: net_log_(params.net_log), |
@@ -291,6 +305,8 @@ std::unique_ptr<base::Value> HttpNetworkSession::QuicInfoToValue() const { |
std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue()); |
dict->Set("sessions", quic_stream_factory_.QuicStreamFactoryInfoToValue()); |
dict->SetBoolean("quic_enabled", params_.enable_quic); |
+ dict->SetBoolean("quic_enabled_for_new_streams", |
+ params_.enable_quic_for_new_streams()); |
dict->SetBoolean("enable_quic_port_selection", |
params_.enable_quic_port_selection); |
std::unique_ptr<base::ListValue> connection_options(new base::ListValue); |
@@ -358,7 +374,7 @@ bool HttpNetworkSession::IsProtocolEnabled(NextProto protocol) const { |
case kProtoHTTP2: |
return params_.enable_http2; |
case kProtoQUIC: |
- return params_.enable_quic; |
+ return params_.enable_quic_for_new_streams(); |
mmenke
2016/12/13 18:48:54
HttpNetworkSession::IsProtocolEnabled() -> enable_
pmarko
2016/12/19 21:25:11
Reduced to only enable_quic, the logic is now outs
|
} |
NOTREACHED(); |
return false; |