summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/io_thread.cc57
-rw-r--r--chrome/browser/io_thread.h4
-rw-r--r--chrome/browser/io_thread_unittest.cc32
-rw-r--r--chrome/browser/resources/net_internals/spdy_view.html7
-rw-r--r--chromecast/browser/url_request_context_factory.cc4
-rw-r--r--components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc9
-rw-r--r--ios/chrome/browser/ios_chrome_io_thread.cc53
-rw-r--r--ios/chrome/browser/ios_chrome_io_thread.h4
-rw-r--r--ios/crnet/crnet_environment.mm5
-rw-r--r--jingle/glue/proxy_resolving_client_socket.cc3
-rw-r--r--jingle/glue/proxy_resolving_client_socket.h1
-rw-r--r--net/http/http_network_session.cc48
-rw-r--r--net/http/http_network_session.h8
-rw-r--r--net/http/http_network_transaction_unittest.cc31
-rw-r--r--net/log/net_log_util.cc7
-rw-r--r--net/quic/quic_network_transaction_unittest.cc3
-rw-r--r--net/socket/next_proto.cc29
-rw-r--r--net/socket/next_proto.h10
-rw-r--r--net/spdy/spdy_network_transaction_unittest.cc11
-rw-r--r--net/spdy/spdy_test_util_common.cc16
-rw-r--r--net/spdy/spdy_test_util_common.h7
-rw-r--r--net/url_request/url_request_context_builder.cc16
-rw-r--r--net/url_request/url_request_context_builder.h4
23 files changed, 160 insertions, 209 deletions
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index a048038..f015bc1 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -995,50 +995,52 @@ void IOThread::ConfigureSpdyGlobals(
std::string spdy_mode =
command_line.GetSwitchValueASCII(switches::kUseSpdy);
ConfigureSpdyGlobalsFromUseSpdyArgument(spdy_mode, globals);
+ // TODO(bnc): https://crbug.com/547781
+ // This command line flag is broken.
+ globals->enable_spdy31.set(false);
+ globals->enable_http2.set(false);
return;
}
- globals->next_protos.clear();
-
- bool enable_quic = false;
- globals->enable_quic.CopyToIfSet(&enable_quic);
- if (enable_quic) {
- globals->next_protos.push_back(net::kProtoQUIC1SPDY3);
- }
-
// No SPDY command-line flags have been specified. Examine trial groups.
if (spdy_trial_group.starts_with(kSpdyFieldTrialHoldbackGroupNamePrefix)) {
net::HttpStreamFactory::set_spdy_enabled(false);
- } else if (spdy_trial_group.starts_with(
- kSpdyFieldTrialSpdy31GroupNamePrefix)) {
- globals->next_protos.push_back(net::kProtoSPDY31);
- } else if (spdy_trial_group.starts_with(
- kSpdyFieldTrialSpdy4GroupNamePrefix)) {
- globals->next_protos.push_back(net::kProtoHTTP2);
- globals->next_protos.push_back(net::kProtoSPDY31);
- } else if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) {
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy31GroupNamePrefix)) {
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(false);
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy4GroupNamePrefix)) {
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(true);
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) {
bool spdy_enabled = false;
+ globals->enable_spdy31.set(false);
+ globals->enable_http2.set(false);
if (base::LowerCaseEqualsASCII(
GetVariationParam(spdy_trial_params, "enable_http2"), "true")) {
- globals->next_protos.push_back(net::kProtoHTTP2);
spdy_enabled = true;
+ globals->enable_http2.set(true);
}
if (base::LowerCaseEqualsASCII(
GetVariationParam(spdy_trial_params, "enable_spdy31"), "true")) {
- globals->next_protos.push_back(net::kProtoSPDY31);
spdy_enabled = true;
+ globals->enable_spdy31.set(true);
}
- // TODO(bnc): HttpStreamFactory::spdy_enabled_ is redundant with
- // globals->next_protos, can it be eliminated?
+ // TODO(bnc): https://crbug.com/521597
+ // HttpStreamFactory::spdy_enabled_ is redundant with globals->enable_http2
+ // and enable_spdy31, can it be eliminated?
net::HttpStreamFactory::set_spdy_enabled(spdy_enabled);
- } else {
- // By default, enable HTTP/2.
- globals->next_protos.push_back(net::kProtoHTTP2);
- globals->next_protos.push_back(net::kProtoSPDY31);
+ return;
}
- // Enable HTTP/1.1 in all cases as the last protocol.
- globals->next_protos.push_back(net::kProtoHTTP11);
+ // By default, enable HTTP/2.
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(true);
}
// static
@@ -1166,7 +1168,8 @@ void IOThread::InitializeNetworkSessionParamsFromGlobals(
&params->enable_spdy_ping_based_connection_checking);
globals.spdy_default_protocol.CopyToIfSet(
&params->spdy_default_protocol);
- params->next_protos = globals.next_protos;
+ globals.enable_spdy31.CopyToIfSet(&params->enable_spdy31);
+ globals.enable_http2.CopyToIfSet(&params->enable_http2);
globals.trusted_spdy_proxy.CopyToIfSet(&params->trusted_spdy_proxy);
params->forced_spdy_exclusions = globals.forced_spdy_exclusions;
globals.parse_alternative_services.CopyToIfSet(
diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h
index cd1e3c2..2e49e55 100644
--- a/chrome/browser/io_thread.h
+++ b/chrome/browser/io_thread.h
@@ -30,7 +30,6 @@
#include "content/public/browser/browser_thread_delegate.h"
#include "net/base/network_change_notifier.h"
#include "net/http/http_network_session.h"
-#include "net/socket/next_proto.h"
class PrefProxyConfigTracker;
class PrefService;
@@ -208,7 +207,8 @@ class IOThread : public content::BrowserThreadDelegate {
Optional<bool> enable_spdy_compression;
Optional<bool> enable_spdy_ping_based_connection_checking;
Optional<net::NextProto> spdy_default_protocol;
- net::NextProtoVector next_protos;
+ Optional<bool> enable_spdy31;
+ Optional<bool> enable_http2;
Optional<std::string> trusted_spdy_proxy;
std::set<net::HostPortPair> forced_spdy_exclusions;
Optional<bool> parse_alternative_services;
diff --git a/chrome/browser/io_thread_unittest.cc b/chrome/browser/io_thread_unittest.cc
index 8935e91..68dc4a6 100644
--- a/chrome/browser/io_thread_unittest.cc
+++ b/chrome/browser/io_thread_unittest.cc
@@ -153,34 +153,39 @@ TEST_F(IOThreadTest, SpdyFieldTrialHoldbackEnabled) {
TEST_F(IOThreadTest, SpdyFieldTrialSpdy31Enabled) {
field_trial_group_ = "Spdy31Enabled";
ConfigureSpdyGlobals();
- EXPECT_THAT(globals_.next_protos,
- ElementsAre(net::kProtoSPDY31, net::kProtoHTTP11));
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_TRUE(params.enable_spdy31);
+ EXPECT_FALSE(params.enable_http2);
}
TEST_F(IOThreadTest, SpdyFieldTrialSpdy4Enabled) {
field_trial_group_ = "Spdy4Enabled";
ConfigureSpdyGlobals();
- EXPECT_THAT(
- globals_.next_protos,
- ElementsAre(net::kProtoHTTP2, net::kProtoSPDY31, net::kProtoHTTP11));
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_TRUE(params.enable_spdy31);
+ EXPECT_TRUE(params.enable_http2);
}
TEST_F(IOThreadTest, SpdyFieldTrialDefault) {
field_trial_group_ = "";
ConfigureSpdyGlobals();
- EXPECT_THAT(
- globals_.next_protos,
- ElementsAre(net::kProtoHTTP2, net::kProtoSPDY31, net::kProtoHTTP11));
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_TRUE(params.enable_spdy31);
+ EXPECT_TRUE(params.enable_http2);
}
TEST_F(IOThreadTest, SpdyFieldTrialParametrized) {
field_trial_params_["enable_spdy31"] = "false";
- // Undefined parameter "enable_http2_14" should default to false.
field_trial_params_["enable_http2"] = "true";
field_trial_group_ = "ParametrizedHTTP2Only";
ConfigureSpdyGlobals();
- EXPECT_THAT(globals_.next_protos,
- ElementsAre(net::kProtoHTTP2, net::kProtoHTTP11));
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_FALSE(params.enable_spdy31);
+ EXPECT_TRUE(params.enable_http2);
}
TEST_F(IOThreadTest, SpdyCommandLineUseSpdyOff) {
@@ -188,7 +193,10 @@ TEST_F(IOThreadTest, SpdyCommandLineUseSpdyOff) {
// Command line should overwrite field trial group.
field_trial_group_ = "Spdy4Enabled";
ConfigureSpdyGlobals();
- EXPECT_EQ(0u, globals_.next_protos.size());
+ net::HttpNetworkSession::Params params;
+ InitializeNetworkSessionParams(&params);
+ EXPECT_FALSE(params.enable_spdy31);
+ EXPECT_FALSE(params.enable_http2);
}
TEST_F(IOThreadTest, NPNFieldTrialEnabled) {
diff --git a/chrome/browser/resources/net_internals/spdy_view.html b/chrome/browser/resources/net_internals/spdy_view.html
index e19c5f7..dd1bc16 100644
--- a/chrome/browser/resources/net_internals/spdy_view.html
+++ b/chrome/browser/resources/net_internals/spdy_view.html
@@ -1,6 +1,11 @@
<div id=spdy-view-tab-content class=content-box>
<ul id=spdy-view-status style='margin-top:0'>
- <li>HTTP/2 Enabled: <span jscontent="spdy_enabled"></span></li>
+ <!-- "enable_http2" and "enable_spdy31" are used since release 50, see
+ https://crrev.com/1651123002. "spdy_enabled" is here to support
+ importing netlog json files from earlier browsers.
+ TODO(bnc): Deprecate around 2016 July. -->
+ <li>HTTP/2 Enabled: <span jscontent="$this.enable_http2 == undefined ? $this.spdy_enabled : $this.enable_http2"></span></li>
+ <li>SPDY/3.1 Enabled: <span jscontent="$this.enable_spdy31 == undefined ? $this.spdy_enabled : $this.enable_spdy31"></span></li>
<!-- "use_alternative_service" is used here since release 46, see
https://crrev.com/1268313004. "use_alternate_protocols" is here to
support importing netlog json files from earlier browsers.
diff --git a/chromecast/browser/url_request_context_factory.cc b/chromecast/browser/url_request_context_factory.cc
index bcfad11..dde307b 100644
--- a/chromecast/browser/url_request_context_factory.cc
+++ b/chromecast/browser/url_request_context_factory.cc
@@ -27,7 +27,6 @@
#include "net/http/http_server_properties_impl.h"
#include "net/http/http_stream_factory.h"
#include "net/proxy/proxy_service.h"
-#include "net/socket/next_proto.h"
#include "net/ssl/channel_id_service.h"
#include "net/ssl/default_channel_id_store.h"
#include "net/ssl/ssl_config_service_defaults.h"
@@ -295,7 +294,8 @@ void URLRequestContextFactory::PopulateNetworkSessionParams(
// TODO(lcwu): http://crbug.com/329681. Remove this once spdy is enabled
// by default at the content level.
- params->next_protos = net::NextProtosSpdy31();
+ params->enable_spdy31 = true;
+ params->enable_http2 = false;
params->parse_alternative_services = true;
params->enable_alternative_service_with_different_host = true;
}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
index f0436af..867a7c3 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
@@ -24,7 +24,6 @@
#include "net/log/net_log.h"
#include "net/proxy/proxy_info.h"
#include "net/proxy/proxy_service.h"
-#include "net/socket/next_proto.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "net/url_request/url_request_interceptor.h"
@@ -108,15 +107,11 @@ TEST_F(DataReductionProxyIODataTest, TestConstruction) {
io_data->basic_url_request_context_getter_.get()->GetURLRequestContext();
const net::HttpNetworkSession::Params* http_params =
request_context->GetNetworkSessionParams();
+ EXPECT_FALSE(http_params->enable_spdy31);
+ EXPECT_FALSE(http_params->enable_http2);
EXPECT_TRUE(http_params->parse_alternative_services);
EXPECT_TRUE(http_params->enable_alternative_service_with_different_host);
EXPECT_FALSE(http_params->enable_quic);
- net::NextProtoVector expected_protos =
- net::NextProtosWithSpdyAndQuic(false, false);
- EXPECT_EQ(expected_protos.size(), http_params->next_protos.size());
- size_t proto_index = 0;
- for (const auto& proto : expected_protos)
- EXPECT_EQ(proto, http_params->next_protos[proto_index++]);
// Check that io_data creates an interceptor. Such an interceptor is
// thoroughly tested by DataReductionProxyInterceptoTest.
diff --git a/ios/chrome/browser/ios_chrome_io_thread.cc b/ios/chrome/browser/ios_chrome_io_thread.cc
index 3a65bb2..477490f 100644
--- a/ios/chrome/browser/ios_chrome_io_thread.cc
+++ b/ios/chrome/browser/ios_chrome_io_thread.cc
@@ -528,47 +528,45 @@ void IOSChromeIOThread::ConfigureSpdyGlobals(
base::StringPiece spdy_trial_group,
const VariationParameters& spdy_trial_params,
IOSChromeIOThread::Globals* globals) {
- globals->next_protos.clear();
-
- bool enable_quic = false;
- globals->enable_quic.CopyToIfSet(&enable_quic);
- if (enable_quic) {
- globals->next_protos.push_back(net::kProtoQUIC1SPDY3);
- }
-
// No SPDY command-line flags have been specified. Examine trial groups.
if (spdy_trial_group.starts_with(kSpdyFieldTrialHoldbackGroupNamePrefix)) {
net::HttpStreamFactory::set_spdy_enabled(false);
- } else if (spdy_trial_group.starts_with(
- kSpdyFieldTrialSpdy31GroupNamePrefix)) {
- globals->next_protos.push_back(net::kProtoSPDY31);
- } else if (spdy_trial_group.starts_with(
- kSpdyFieldTrialSpdy4GroupNamePrefix)) {
- globals->next_protos.push_back(net::kProtoHTTP2);
- globals->next_protos.push_back(net::kProtoSPDY31);
- } else if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) {
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy31GroupNamePrefix)) {
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(false);
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialSpdy4GroupNamePrefix)) {
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(true);
+ return;
+ }
+ if (spdy_trial_group.starts_with(kSpdyFieldTrialParametrizedPrefix)) {
bool spdy_enabled = false;
+ globals->enable_spdy31.set(false);
+ globals->enable_http2.set(false);
if (base::LowerCaseEqualsASCII(
GetVariationParam(spdy_trial_params, "enable_http2"), "true")) {
- globals->next_protos.push_back(net::kProtoHTTP2);
spdy_enabled = true;
+ globals->enable_http2.set(true);
}
if (base::LowerCaseEqualsASCII(
GetVariationParam(spdy_trial_params, "enable_spdy31"), "true")) {
- globals->next_protos.push_back(net::kProtoSPDY31);
spdy_enabled = true;
+ globals->enable_spdy31.set(true);
}
- // TODO(bnc): HttpStreamFactory::spdy_enabled_ is redundant with
- // globals->next_protos, can it be eliminated?
+ // TODO(bnc): https://crbug.com/521597
+ // HttpStreamFactory::spdy_enabled_ is redundant with globals->enable_http2
+ // and enable_spdy31, can it be eliminated?
net::HttpStreamFactory::set_spdy_enabled(spdy_enabled);
- } else {
- // By default, enable HTTP/2.
- globals->next_protos.push_back(net::kProtoHTTP2);
- globals->next_protos.push_back(net::kProtoSPDY31);
+ return;
}
- // Enable HTTP/1.1 in all cases as the last protocol.
- globals->next_protos.push_back(net::kProtoHTTP11);
+ // By default, enable HTTP/2.
+ globals->enable_spdy31.set(true);
+ globals->enable_http2.set(true);
}
// static
@@ -637,7 +635,8 @@ void IOSChromeIOThread::InitializeNetworkSessionParamsFromGlobals(
globals.enable_spdy_compression.CopyToIfSet(&params->enable_spdy_compression);
globals.enable_spdy_ping_based_connection_checking.CopyToIfSet(
&params->enable_spdy_ping_based_connection_checking);
- params->next_protos = globals.next_protos;
+ globals.enable_spdy31.CopyToIfSet(&params->enable_spdy31);
+ globals.enable_http2.CopyToIfSet(&params->enable_http2);
params->forced_spdy_exclusions = globals.forced_spdy_exclusions;
globals.parse_alternative_services.CopyToIfSet(
&params->parse_alternative_services);
diff --git a/ios/chrome/browser/ios_chrome_io_thread.h b/ios/chrome/browser/ios_chrome_io_thread.h
index 5f0956f..878d28d 100644
--- a/ios/chrome/browser/ios_chrome_io_thread.h
+++ b/ios/chrome/browser/ios_chrome_io_thread.h
@@ -25,7 +25,6 @@
#include "ios/web/public/web_thread_delegate.h"
#include "net/base/network_change_notifier.h"
#include "net/http/http_network_session.h"
-#include "net/socket/next_proto.h"
class PrefProxyConfigTracker;
class PrefService;
@@ -138,7 +137,8 @@ class IOSChromeIOThread : public web::WebThreadDelegate {
Optional<size_t> initial_max_spdy_concurrent_streams;
Optional<bool> enable_spdy_compression;
Optional<bool> enable_spdy_ping_based_connection_checking;
- net::NextProtoVector next_protos;
+ Optional<bool> enable_spdy31;
+ Optional<bool> enable_http2;
std::set<net::HostPortPair> forced_spdy_exclusions;
Optional<bool> parse_alternative_services;
Optional<bool> enable_alternative_service_with_different_host;
diff --git a/ios/crnet/crnet_environment.mm b/ios/crnet/crnet_environment.mm
index 7861322..939836a 100644
--- a/ios/crnet/crnet_environment.mm
+++ b/ios/crnet/crnet_environment.mm
@@ -47,7 +47,6 @@
#include "net/log/write_to_file_net_log_observer.h"
#include "net/proxy/proxy_service.h"
#include "net/sdch/sdch_owner.h"
-#include "net/socket/next_proto.h"
#include "net/ssl/channel_id_service.h"
#include "net/ssl/default_channel_id_store.h"
#include "net/ssl/ssl_config_service_defaults.h"
@@ -439,8 +438,8 @@ void CrNetEnvironment::InitializeOnNetworkThread() {
params.network_delegate = main_context_->network_delegate();
params.http_server_properties = main_context_->http_server_properties();
params.net_log = main_context_->net_log();
- params.next_protos =
- net::NextProtosWithSpdyAndQuic(spdy_enabled(), quic_enabled());
+ params.enable_spdy31 = spdy_enabled();
+ params.enable_http2 = spdy_enabled();
params.parse_alternative_services = false;
params.enable_quic = quic_enabled();
params.alternative_service_probability_threshold =
diff --git a/jingle/glue/proxy_resolving_client_socket.cc b/jingle/glue/proxy_resolving_client_socket.cc
index e54ca93..9443085 100644
--- a/jingle/glue/proxy_resolving_client_socket.cc
+++ b/jingle/glue/proxy_resolving_client_socket.cc
@@ -83,7 +83,8 @@ ProxyResolvingClientSocket::ProxyResolvingClientSocket(
reference_params->testing_fixed_http_port;
session_params.testing_fixed_https_port =
reference_params->testing_fixed_https_port;
- session_params.next_protos = reference_params->next_protos;
+ session_params.enable_spdy31 = reference_params->enable_spdy31;
+ session_params.enable_http2 = reference_params->enable_http2;
session_params.trusted_spdy_proxy = reference_params->trusted_spdy_proxy;
session_params.forced_spdy_exclusions =
reference_params->forced_spdy_exclusions;
diff --git a/jingle/glue/proxy_resolving_client_socket.h b/jingle/glue/proxy_resolving_client_socket.h
index 4e3af23..fd9629d 100644
--- a/jingle/glue/proxy_resolving_client_socket.h
+++ b/jingle/glue/proxy_resolving_client_socket.h
@@ -20,6 +20,7 @@
#include "net/log/net_log.h"
#include "net/proxy/proxy_info.h"
#include "net/proxy/proxy_service.h"
+#include "net/socket/next_proto.h"
#include "net/socket/stream_socket.h"
#include "net/ssl/ssl_config_service.h"
#include "url/gurl.h"
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index fa6acb2..9dc5f94 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -92,6 +92,8 @@ HttpNetworkSession::Params::Params()
enable_spdy_compression(true),
enable_spdy_ping_based_connection_checking(true),
spdy_default_protocol(kProtoUnknown),
+ enable_spdy31(false),
+ enable_http2(false),
spdy_session_max_recv_window_size(kSpdySessionMaxRecvWindowSize),
spdy_stream_max_recv_window_size(kSpdyStreamMaxRecvWindowSize),
spdy_initial_max_concurrent_streams(0),
@@ -216,31 +218,31 @@ HttpNetworkSession::HttpNetworkSession(const Params& params)
enabled_protocols_[i - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] = false;
}
- // TODO(rtenneti): bug 116575 - consider combining the NextProto and
- // AlternateProtocol.
- for (std::vector<NextProto>::const_iterator it = params_.next_protos.begin();
- it != params_.next_protos.end(); ++it) {
- NextProto proto = *it;
-
- // Add the protocol to the TLS next protocol list, except for QUIC
- // since it uses UDP.
- if (proto != kProtoQUIC1SPDY3) {
- next_protos_.push_back(proto);
- }
-
- // Enable the corresponding alternate protocol, except for HTTP
- // which has not corresponding alternative.
- if (proto != kProtoHTTP11) {
- AlternateProtocol alternate = AlternateProtocolFromNextProto(proto);
- if (!IsAlternateProtocolValid(alternate)) {
- NOTREACHED() << "Invalid next proto: " << proto;
- continue;
- }
- enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] =
- true;
- }
+ // TODO(rtenneti): https://crbug.com/116575
+ // Consider combining the NextProto and AlternateProtocol.
+ if (params_.enable_http2) {
+ next_protos_.push_back(kProtoHTTP2);
+ AlternateProtocol alternate = AlternateProtocolFromNextProto(kProtoHTTP2);
+ enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] =
+ true;
}
+ if (params_.enable_spdy31) {
+ next_protos_.push_back(kProtoSPDY31);
+ AlternateProtocol alternate = AlternateProtocolFromNextProto(kProtoSPDY31);
+ enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] =
+ true;
+ }
+
+ if (params_.enable_quic) {
+ AlternateProtocol alternate =
+ AlternateProtocolFromNextProto(kProtoQUIC1SPDY3);
+ enabled_protocols_[alternate - ALTERNATE_PROTOCOL_MINIMUM_VALID_VERSION] =
+ true;
+ }
+
+ next_protos_.push_back(kProtoHTTP11);
+
http_server_properties_->SetAlternativeServiceProbabilityThreshold(
params.alternative_service_probability_threshold);
http_server_properties_->SetMaxServerConfigsStoredInProperties(
diff --git a/net/http/http_network_session.h b/net/http/http_network_session.h
index f3f336c..b22f3d4 100644
--- a/net/http/http_network_session.h
+++ b/net/http/http_network_session.h
@@ -91,12 +91,8 @@ class NET_EXPORT HttpNetworkSession
// Use SPDY ping frames to test for connection health after idle.
bool enable_spdy_ping_based_connection_checking;
NextProto spdy_default_protocol;
- // The protocols supported by NPN (next protocol negotiation) during the
- // SSL handshake as well as by HTTP Alternate-Protocol.
- // TODO(mmenke): This is currently empty by default, and alternate
- // protocols are disabled. We should use some reasonable
- // defaults.
- NextProtoVector next_protos;
+ bool enable_spdy31;
+ bool enable_http2;
size_t spdy_session_max_recv_window_size;
size_t spdy_stream_max_recv_window_size;
size_t spdy_initial_max_concurrent_streams;
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 4d4b5471..d086f08 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -9570,7 +9570,6 @@ TEST_P(HttpNetworkTransactionTest, ChangeAuthRealms) {
}
TEST_P(HttpNetworkTransactionTest, HonorAlternativeServiceHeader) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
@@ -9633,7 +9632,6 @@ TEST_P(HttpNetworkTransactionTest, HonorAlternativeServiceHeader) {
}
TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
@@ -9693,7 +9691,6 @@ TEST_P(HttpNetworkTransactionTest, ClearAlternativeServices) {
// Alternative Service headers must be ignored when
// |parse_alternative_services| is false.
TEST_P(HttpNetworkTransactionTest, DoNotHonorAlternativeServiceHeader) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = false;
std::string alternative_service_http_header =
@@ -9751,7 +9748,6 @@ TEST_P(HttpNetworkTransactionTest, DoNotHonorAlternativeServiceHeader) {
}
TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
@@ -9760,7 +9756,8 @@ TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
MockRead("Alt-Svc: "),
MockRead(GetAlternateProtocolFromParam()),
MockRead("=\"www.example.com:443\";p=\"1.0\","),
- MockRead("quic=\":1234\"\r\n\r\n"),
+ MockRead(GetAlternateProtocolFromParam()),
+ MockRead("=\":1234\"\r\n\r\n"),
MockRead("hello world"),
MockRead(SYNCHRONOUS, OK),
};
@@ -9810,7 +9807,8 @@ TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
alternative_service_vector[0].protocol);
EXPECT_EQ("www.example.com", alternative_service_vector[0].host);
EXPECT_EQ(443, alternative_service_vector[0].port);
- EXPECT_EQ(QUIC, alternative_service_vector[1].protocol);
+ EXPECT_EQ(AlternateProtocolFromNextProto(GetProtocol()),
+ alternative_service_vector[1].protocol);
EXPECT_EQ("www.example.org", alternative_service_vector[1].host);
EXPECT_EQ(1234, alternative_service_vector[1].port);
}
@@ -9818,7 +9816,6 @@ TEST_P(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeader) {
// Alternate Protocol headers must be honored even if
// |parse_alternative_services| is false.
TEST_P(HttpNetworkTransactionTest, HonorAlternateProtocolHeader) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = false;
std::string alternate_protocol_http_header =
@@ -9879,7 +9876,6 @@ TEST_P(HttpNetworkTransactionTest, HonorAlternateProtocolHeader) {
}
TEST_P(HttpNetworkTransactionTest, EmptyAlternateProtocolHeader) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
@@ -9943,7 +9939,6 @@ TEST_P(HttpNetworkTransactionTest, EmptyAlternateProtocolHeader) {
// When |session_deps_.parse_alternative_services = true| and the response has
// an Alt-Svc header, then the Alternate-Protocol header is not parsed.
TEST_P(HttpNetworkTransactionTest, AltSvcOverwritesAlternateProtocol) {
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
@@ -10572,7 +10567,6 @@ TEST_P(HttpNetworkTransactionTest, AlternateProtocolUnsafeBlocked) {
TEST_P(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
HttpRequestInfo request;
request.method = "GET";
@@ -10661,7 +10655,6 @@ TEST_P(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) {
TEST_P(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
HttpRequestInfo request;
request.method = "GET";
@@ -10783,7 +10776,6 @@ TEST_P(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
TEST_P(HttpNetworkTransactionTest, StallAlternateProtocolForNpnSpdy) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
HttpRequestInfo request;
request.method = "GET";
@@ -10913,7 +10905,6 @@ TEST_P(HttpNetworkTransactionTest,
UseAlternateProtocolForTunneledNpnSpdy) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
ProxyConfig proxy_config;
proxy_config.set_auto_detect(true);
@@ -11038,7 +11029,6 @@ TEST_P(HttpNetworkTransactionTest,
UseAlternateProtocolForNpnSpdyWithExistingSpdySession) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
HttpRequestInfo request;
request.method = "GET";
@@ -11737,11 +11727,10 @@ TEST_P(HttpNetworkTransactionTest, MultiRoundAuth) {
// This tests the case that a request is issued via http instead of spdy after
// npn is negotiated.
TEST_P(HttpNetworkTransactionTest, NpnWithHttpOverSSL) {
+ session_deps_.enable_spdy31 = false;
+ session_deps_.enable_http2 = false;
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- NextProtoVector next_protos;
- next_protos.push_back(kProtoHTTP11);
- session_deps_.next_protos = next_protos;
HttpRequestInfo request;
request.method = "GET";
@@ -11805,7 +11794,6 @@ TEST_P(HttpNetworkTransactionTest, NpnWithHttpOverSSL) {
TEST_P(HttpNetworkTransactionTest, SpdyPostNPNServerHangup) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
HttpRequestInfo request;
request.method = "GET";
@@ -11867,7 +11855,6 @@ class UrlRecordingHttpAuthHandlerMock : public HttpAuthHandlerMock {
TEST_P(HttpNetworkTransactionTest, SpdyAlternateProtocolThroughProxy) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
session_deps_.proxy_service =
ProxyService::CreateFixedFromPacResult("PROXY myproxy:70");
@@ -12797,7 +12784,6 @@ TEST_P(HttpNetworkTransactionTest, ClientAuthCertCache_Proxy_Fail) {
TEST_P(HttpNetworkTransactionTest, UseIPConnectionPooling) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
// Set up a special HttpNetworkSession with a MockCachingHostResolver.
session_deps_.host_resolver.reset(new MockCachingHostResolver());
@@ -12898,7 +12884,6 @@ TEST_P(HttpNetworkTransactionTest, UseIPConnectionPooling) {
TEST_P(HttpNetworkTransactionTest, UseIPConnectionPoolingAfterResolution) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
// Set up a special HttpNetworkSession with a MockCachingHostResolver.
session_deps_.host_resolver.reset(new MockCachingHostResolver());
@@ -13027,7 +13012,6 @@ TEST_P(HttpNetworkTransactionTest,
UseIPConnectionPoolingWithHostCacheExpiration) {
session_deps_.parse_alternative_services = true;
session_deps_.enable_alternative_service_with_different_host = false;
- session_deps_.next_protos = SpdyNextProtos();
// Set up a special HttpNetworkSession with a OneTimeCachingHostResolver.
OneTimeCachingHostResolver host_resolver(HostPortPair("www.gmail.com", 443));
@@ -13951,7 +13935,6 @@ TEST_P(HttpNetworkTransactionTest, ErrorSocketNotConnected) {
}
TEST_P(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
- session_deps_.next_protos = SpdyNextProtos();
ClientSocketPoolManager::set_max_sockets_per_group(
HttpNetworkSession::NORMAL_SOCKET_POOL, 1);
ClientSocketPoolManager::set_max_sockets_per_pool(
@@ -15828,7 +15811,6 @@ TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesChunkedPost) {
}
TEST_P(HttpNetworkTransactionTest, EnableNPN) {
- session_deps_.next_protos = NextProtosDefaults();
session_deps_.enable_npn = true;
scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
@@ -15841,7 +15823,6 @@ TEST_P(HttpNetworkTransactionTest, EnableNPN) {
}
TEST_P(HttpNetworkTransactionTest, DisableNPN) {
- session_deps_.next_protos = NextProtosDefaults();
session_deps_.enable_npn = false;
scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
diff --git a/net/log/net_log_util.cc b/net/log/net_log_util.cc
index 150b9f9..4d4dfa6 100644
--- a/net/log/net_log_util.cc
+++ b/net/log/net_log_util.cc
@@ -416,7 +416,12 @@ NET_EXPORT scoped_ptr<base::DictionaryValue> GetNetInfo(
if (info_sources & NET_INFO_SPDY_STATUS) {
base::DictionaryValue* status_dict = new base::DictionaryValue();
- status_dict->SetBoolean("spdy_enabled", HttpStreamFactory::spdy_enabled());
+ status_dict->SetBoolean("enable_spdy31",
+ http_network_session->params().enable_spdy31 &&
+ HttpStreamFactory::spdy_enabled());
+ status_dict->SetBoolean("enable_http2",
+ http_network_session->params().enable_http2 &&
+ HttpStreamFactory::spdy_enabled());
status_dict->SetBoolean(
"use_alternative_services",
http_network_session->params().parse_alternative_services);
diff --git a/net/quic/quic_network_transaction_unittest.cc b/net/quic/quic_network_transaction_unittest.cc
index f161588..67f855b 100644
--- a/net/quic/quic_network_transaction_unittest.cc
+++ b/net/quic/quic_network_transaction_unittest.cc
@@ -442,9 +442,10 @@ class QuicNetworkTransactionTest
test_network_quality_estimator_->AddRTTObserver(&rtt_observer_);
if (use_next_protos) {
+ params_.enable_spdy31 = true;
+ params_.enable_http2 = true;
params_.parse_alternative_services = true;
params_.enable_alternative_service_with_different_host = true;
- params_.next_protos = NextProtosWithSpdyAndQuic(true, true);
}
session_.reset(new HttpNetworkSession(params_));
diff --git a/net/socket/next_proto.cc b/net/socket/next_proto.cc
index a22418c..a3e2e0b 100644
--- a/net/socket/next_proto.cc
+++ b/net/socket/next_proto.cc
@@ -6,35 +6,6 @@
namespace net {
-NextProtoVector NextProtosDefaults() {
- NextProtoVector next_protos;
- next_protos.push_back(kProtoHTTP2);
- next_protos.push_back(kProtoSPDY31);
- next_protos.push_back(kProtoHTTP11);
- return next_protos;
-}
-
-NextProtoVector NextProtosWithSpdyAndQuic(bool spdy_enabled,
- bool quic_enabled) {
- NextProtoVector next_protos;
- if (quic_enabled)
- next_protos.push_back(kProtoQUIC1SPDY3);
- if (spdy_enabled) {
- next_protos.push_back(kProtoHTTP2);
- next_protos.push_back(kProtoSPDY31);
- }
- next_protos.push_back(kProtoHTTP11);
- return next_protos;
-}
-
-NextProtoVector NextProtosSpdy31() {
- NextProtoVector next_protos;
- next_protos.push_back(kProtoQUIC1SPDY3);
- next_protos.push_back(kProtoSPDY31);
- next_protos.push_back(kProtoHTTP11);
- return next_protos;
-}
-
bool NextProtoIsSPDY(NextProto next_proto) {
return next_proto >= kProtoSPDYMinimumVersion &&
next_proto <= kProtoSPDYMaximumVersion;
diff --git a/net/socket/next_proto.h b/net/socket/next_proto.h
index 3938d44..734e0dd 100644
--- a/net/socket/next_proto.h
+++ b/net/socket/next_proto.h
@@ -43,16 +43,6 @@ typedef std::vector<NextProto> NextProtoVector;
// Convenience functions to create NextProtoVector.
-// Default values, which are subject to change over time.
-NET_EXPORT NextProtoVector NextProtosDefaults();
-
-// Enable SPDY/3.1 and QUIC, but not HTTP/2.
-NET_EXPORT NextProtoVector NextProtosSpdy31();
-
-// Control SPDY/3.1 and HTTP/2 separately.
-NET_EXPORT NextProtoVector NextProtosWithSpdyAndQuic(bool spdy_enabled,
- bool quic_enabled);
-
// Returns true if |next_proto| is a version of SPDY or HTTP/2.
bool NextProtoIsSPDY(NextProto next_proto);
diff --git a/net/spdy/spdy_network_transaction_unittest.cc b/net/spdy/spdy_network_transaction_unittest.cc
index c25bc2b..a1e060c 100644
--- a/net/spdy/spdy_network_transaction_unittest.cc
+++ b/net/spdy/spdy_network_transaction_unittest.cc
@@ -103,7 +103,6 @@ void UpdateSpdySessionDependencies(SpdyNetworkTransactionTestParams test_params,
SpdySessionDependencies* session_deps) {
session_deps->parse_alternative_services = true;
session_deps->enable_alternative_service_with_different_host = true;
- session_deps->next_protos = SpdyNextProtos();
if (test_params.ssl_type == HTTP_SPDY_VIA_ALT_SVC) {
base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
session_deps->http_server_properties.SetAlternativeService(
@@ -4324,7 +4323,6 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) {
scoped_ptr<SpdySessionDependencies> session_deps(
CreateSpdySessionDependencies(GetParam()));
// Do not force SPDY so that second socket can negotiate HTTP/1.1.
- session_deps->next_protos = SpdyNextProtos();
NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, BoundNetLog(),
GetParam(), std::move(session_deps));
@@ -4343,9 +4341,9 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredRetry) {
scoped_ptr<SSLSocketDataProvider> ssl_provider0(
new SSLSocketDataProvider(ASYNC, OK));
// Expect HTTP/2 protocols too in SSLConfig.
- ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11);
- ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31);
ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP2);
+ ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31);
+ ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11);
// Force SPDY.
ssl_provider0->SetNextProto(GetParam().protocol);
helper.AddDataWithSSLSocketDataProvider(&data0, std::move(ssl_provider0));
@@ -4416,7 +4414,6 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredProxyRetry) {
GetParam(),
ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")));
// Do not force SPDY so that second socket can negotiate HTTP/1.1.
- session_deps->next_protos = SpdyNextProtos();
NormalSpdyTransactionHelper helper(request, DEFAULT_PRIORITY, BoundNetLog(),
GetParam(), std::move(session_deps));
@@ -4433,9 +4430,9 @@ TEST_P(SpdyNetworkTransactionTest, HTTP11RequiredProxyRetry) {
scoped_ptr<SSLSocketDataProvider> ssl_provider0(
new SSLSocketDataProvider(ASYNC, OK));
// Expect HTTP/2 protocols too in SSLConfig.
- ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11);
- ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31);
ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP2);
+ ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoSPDY31);
+ ssl_provider0->next_protos_expected_in_ssl_config.push_back(kProtoHTTP11);
// Force SPDY.
ssl_provider0->SetNextProto(GetParam().protocol);
helper.AddDataWithSSLSocketDataProvider(&data0, std::move(ssl_provider0));
diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc
index 37373cf..7b970ea 100644
--- a/net/spdy/spdy_test_util_common.cc
+++ b/net/spdy/spdy_test_util_common.cc
@@ -54,15 +54,6 @@ void ParseUrl(base::StringPiece url, std::string* scheme, std::string* host,
} // namespace
-NextProtoVector SpdyNextProtos() {
- NextProtoVector next_protos;
- next_protos.push_back(kProtoHTTP11);
- next_protos.push_back(kProtoSPDY31);
- next_protos.push_back(kProtoHTTP2);
- next_protos.push_back(kProtoQUIC1SPDY3);
- return next_protos;
-}
-
// Chop a frame into an array of MockWrites.
// |frame| is the frame to chop.
// |num_chunks| is the number of chunks to create.
@@ -355,6 +346,8 @@ SpdySessionDependencies::SpdySessionDependencies(NextProto protocol)
stream_max_recv_window_size(
SpdySession::GetDefaultInitialWindowSize(protocol)),
time_func(&base::TimeTicks::Now),
+ enable_spdy31(true),
+ enable_http2(true),
parse_alternative_services(false),
enable_alternative_service_with_different_host(false),
net_log(NULL) {
@@ -392,6 +385,8 @@ SpdySessionDependencies::SpdySessionDependencies(
stream_max_recv_window_size(
SpdySession::GetDefaultInitialWindowSize(protocol)),
time_func(&base::TimeTicks::Now),
+ enable_spdy31(true),
+ enable_http2(true),
parse_alternative_services(true),
enable_alternative_service_with_different_host(true),
net_log(NULL) {
@@ -440,7 +435,8 @@ HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams(
params.spdy_stream_max_recv_window_size =
session_deps->stream_max_recv_window_size;
params.time_func = session_deps->time_func;
- params.next_protos = session_deps->next_protos;
+ params.enable_spdy31 = session_deps->enable_spdy31;
+ params.enable_http2 = session_deps->enable_http2;
params.trusted_spdy_proxy = session_deps->trusted_spdy_proxy;
params.parse_alternative_services = session_deps->parse_alternative_services;
params.enable_alternative_service_with_different_host =
diff --git a/net/spdy/spdy_test_util_common.h b/net/spdy/spdy_test_util_common.h
index ed51936..6746d85 100644
--- a/net/spdy/spdy_test_util_common.h
+++ b/net/spdy/spdy_test_util_common.h
@@ -52,10 +52,6 @@ const char kDefaultURL[] = "http://www.example.org/";
const char kUploadData[] = "hello!";
const int kUploadDataSize = arraysize(kUploadData)-1;
-// SpdyNextProtos returns a vector of next protocols for negotiating
-// SPDY.
-NextProtoVector SpdyNextProtos();
-
// Chop a SpdyFrame into an array of MockWrites.
// |frame| is the frame to chop.
// |num_chunks| is the number of chunks to create.
@@ -204,7 +200,8 @@ struct SpdySessionDependencies {
size_t session_max_recv_window_size;
size_t stream_max_recv_window_size;
SpdySession::TimeFunc time_func;
- NextProtoVector next_protos;
+ bool enable_spdy31;
+ bool enable_http2;
std::string trusted_spdy_proxy;
bool parse_alternative_services;
bool enable_alternative_service_with_different_host;
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
index 82a23df..44109d7 100644
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -179,7 +179,8 @@ URLRequestContextBuilder::HttpNetworkSessionParams::HttpNetworkSessionParams()
host_mapping_rules(NULL),
testing_fixed_http_port(0),
testing_fixed_https_port(0),
- next_protos(NextProtosDefaults()),
+ enable_spdy31(true),
+ enable_http2(true),
parse_alternative_services(true),
enable_alternative_service_with_different_host(true),
enable_quic(false),
@@ -237,8 +238,8 @@ void URLRequestContextBuilder::DisableHttpCache() {
void URLRequestContextBuilder::SetSpdyAndQuicEnabled(bool spdy_enabled,
bool quic_enabled) {
- http_network_session_params_.next_protos =
- NextProtosWithSpdyAndQuic(spdy_enabled, quic_enabled);
+ http_network_session_params_.enable_spdy31 = spdy_enabled;
+ http_network_session_params_.enable_http2 = spdy_enabled;
http_network_session_params_.enable_quic = quic_enabled;
}
@@ -386,14 +387,17 @@ scoped_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
http_network_session_params_.testing_fixed_http_port;
network_session_params.testing_fixed_https_port =
http_network_session_params_.testing_fixed_https_port;
+ network_session_params.enable_spdy31 =
+ http_network_session_params_.enable_spdy31;
+ network_session_params.enable_http2 =
+ http_network_session_params_.enable_http2;
+ network_session_params.trusted_spdy_proxy =
+ http_network_session_params_.trusted_spdy_proxy;
network_session_params.parse_alternative_services =
http_network_session_params_.parse_alternative_services;
network_session_params.enable_alternative_service_with_different_host =
http_network_session_params_
.enable_alternative_service_with_different_host;
- network_session_params.trusted_spdy_proxy =
- http_network_session_params_.trusted_spdy_proxy;
- network_session_params.next_protos = http_network_session_params_.next_protos;
network_session_params.enable_quic = http_network_session_params_.enable_quic;
network_session_params.quic_max_server_configs_stored_in_properties =
http_network_session_params_.quic_max_server_configs_stored_in_properties;
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
index d7a9def..83193d1 100644
--- a/net/url_request/url_request_context_builder.h
+++ b/net/url_request/url_request_context_builder.h
@@ -84,7 +84,8 @@ class NET_EXPORT URLRequestContextBuilder {
HostMappingRules* host_mapping_rules;
uint16_t testing_fixed_http_port;
uint16_t testing_fixed_https_port;
- NextProtoVector next_protos;
+ bool enable_spdy31;
+ bool enable_http2;
std::string trusted_spdy_proxy;
bool parse_alternative_services;
bool enable_alternative_service_with_different_host;
@@ -189,7 +190,6 @@ class NET_EXPORT URLRequestContextBuilder {
transport_security_persister_path_ = transport_security_persister_path;
}
- // Adjust |http_network_session_params_.next_protos| to enable SPDY and QUIC.
void SetSpdyAndQuicEnabled(bool spdy_enabled,
bool quic_enabled);