Index: net/http/http_network_session.cc |
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc |
index 3b2ca28d9fe3fb33557f429cd546c39354303c1d..6c11ecc6b7dfd9f8239450fc8cbe77b29192a80a 100644 |
--- a/net/http/http_network_session.cc |
+++ b/net/http/http_network_session.cc |
@@ -73,23 +73,24 @@ const int32_t kSpdyStreamMaxRecvWindowSize = 6 * 1024 * 1024; // 6 MB |
const int32_t kQuicSocketReceiveBufferSize = 1024 * 1024; // 1MB |
HttpNetworkSession::Params::Params() |
- : client_socket_factory(NULL), |
- host_resolver(NULL), |
- cert_verifier(NULL), |
- channel_id_service(NULL), |
- transport_security_state(NULL), |
- cert_transparency_verifier(NULL), |
- ct_policy_enforcer(NULL), |
- proxy_service(NULL), |
- ssl_config_service(NULL), |
- http_auth_handler_factory(NULL), |
- net_log(NULL), |
- host_mapping_rules(NULL), |
- socket_performance_watcher_factory(NULL), |
+ : client_socket_factory(nullptr), |
+ host_resolver(nullptr), |
+ cert_verifier(nullptr), |
+ channel_id_service(nullptr), |
+ transport_security_state(nullptr), |
+ cert_transparency_verifier(nullptr), |
+ ct_policy_enforcer(nullptr), |
+ proxy_service(nullptr), |
+ ssl_config_service(nullptr), |
+ http_auth_handler_factory(nullptr), |
+ net_log(nullptr), |
+ host_mapping_rules(nullptr), |
+ socket_performance_watcher_factory(nullptr), |
ignore_certificate_errors(false), |
testing_fixed_http_port(0), |
testing_fixed_https_port(0), |
enable_tcp_fast_open_for_ssl(false), |
+ dynamic_shared_params(nullptr), |
enable_spdy_ping_based_connection_checking(true), |
enable_http2(true), |
spdy_session_max_recv_window_size(kSpdySessionMaxRecvWindowSize), |
@@ -97,7 +98,6 @@ HttpNetworkSession::Params::Params() |
time_func(&base::TimeTicks::Now), |
enable_http2_alternative_service_with_different_host(false), |
enable_quic_alternative_service_with_different_host(true), |
- enable_quic(false), |
disable_quic_on_timeout_with_open_streams(false), |
quic_always_require_handshake_confirmation(false), |
quic_disable_connection_pooling(false), |
@@ -109,8 +109,8 @@ HttpNetworkSession::Params::Params() |
quic_socket_receive_buffer_size(kQuicSocketReceiveBufferSize), |
quic_delay_tcp_race(true), |
quic_max_server_configs_stored_in_properties(0u), |
- quic_clock(NULL), |
- quic_random(NULL), |
+ quic_clock(nullptr), |
+ quic_random(nullptr), |
quic_max_packet_length(kDefaultMaxPacketSize), |
enable_user_alternate_protocol_ports(false), |
quic_crypto_client_stream_factory( |
@@ -128,7 +128,7 @@ HttpNetworkSession::Params::Params() |
quic_force_hol_blocking(false), |
quic_race_cert_verification(false), |
quic_do_not_fragment(false), |
- proxy_delegate(NULL), |
+ proxy_delegate(nullptr), |
enable_token_binding(false), |
http_09_on_non_default_ports_enabled(false) { |
quic_supported_versions.push_back(QUIC_VERSION_35); |
@@ -138,6 +138,15 @@ HttpNetworkSession::Params::Params(const Params& other) = default; |
HttpNetworkSession::Params::~Params() {} |
+bool HttpNetworkSession::Params::enable_quic() const { |
+ return dynamic_shared_params && dynamic_shared_params->enable_quic; |
+} |
+ |
+HttpNetworkSession::DynamicSharedParams::DynamicSharedParams() |
+ : enable_quic(false) {} |
+ |
+HttpNetworkSession::DynamicSharedParams::~DynamicSharedParams() {} |
+ |
// TODO(mbelshe): Move the socket factories into HttpStreamFactory. |
HttpNetworkSession::HttpNetworkSession(const Params& params) |
: net_log_(params.net_log), |
@@ -292,7 +301,7 @@ std::unique_ptr<base::Value> HttpNetworkSession::SpdySessionPoolInfoToValue() |
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", params_.enable_quic()); |
std::unique_ptr<base::ListValue> connection_options(new base::ListValue); |
for (QuicTagVector::const_iterator it = |
params_.quic_connection_options.begin(); |
@@ -358,7 +367,7 @@ bool HttpNetworkSession::IsProtocolEnabled(NextProto protocol) const { |
case kProtoHTTP2: |
return params_.enable_http2; |
case kProtoQUIC: |
- return params_.enable_quic; |
+ return params_.enable_quic(); |
} |
NOTREACHED(); |
return false; |