Commit 1c76e038 authored by David Schinazi's avatar David Schinazi Committed by Commit Bot

Remove kDefaultSupportedQuicVersion in favor of DefaultSupportedQuicVersions()

This change cleans up the codebase and prepares us for using
multiple versions in DefaultSupportedQuicVersions(). Our current
plan is to eventually set it to (h3-29,h3-Q050) if our latest
experiments in Stable go as planned.

R=renjietang@chromium.org

Change-Id: Ie1f6b35b42df07f65a8d800616e8f34427282913
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2419150
Commit-Queue: David Schinazi <dschinazi@chromium.org>
Commit-Queue: Renjie Tang <renjietang@chromium.org>
Auto-Submit: David Schinazi <dschinazi@chromium.org>
Reviewed-by: default avatarRenjie Tang <renjietang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#808619}
parent 3a35d2fa
......@@ -448,9 +448,8 @@ TEST(URLRequestContextConfigTest, SetUnsupportedQuicVersion) {
net::ProxyConfigWithAnnotation::CreateDirect()));
std::unique_ptr<net::URLRequestContext> context(builder.Build());
const net::QuicParams* quic_params = context->quic_context()->params();
EXPECT_EQ(quic_params->supported_versions.size(), 1u);
EXPECT_EQ(quic_params->supported_versions[0],
net::kDefaultSupportedQuicVersion);
EXPECT_EQ(quic_params->supported_versions,
net::DefaultSupportedQuicVersions());
}
TEST(URLRequestContextConfigTest, SetQuicServerMigrationOptions) {
......
......@@ -315,6 +315,7 @@ class HttpStreamFactoryJobControllerTest : public TestWithTaskEnvironment {
const quic::ParsedQuicVersion& expected_version,
const quic::ParsedQuicVersionVector& supported_versions);
quic::ParsedQuicVersion version_ = DefaultSupportedQuicVersions().front();
RecordingBoundTestNetLog net_log_;
TestJobFactory job_factory_;
MockHttpStreamRequestDelegate request_delegate_;
......@@ -328,7 +329,7 @@ class HttpStreamFactoryJobControllerTest : public TestWithTaskEnvironment {
std::unique_ptr<SequencedSocketData> tcp_data_;
std::unique_ptr<MockQuicData> quic_data_;
MockCryptoClientStreamFactory crypto_client_stream_factory_;
QuicTestPacketMaker client_maker_{kDefaultSupportedQuicVersion,
QuicTestPacketMaker client_maker_{version_,
quic::QuicUtils::CreateRandomConnectionId(
quic_context_.random_generator()),
quic_context_.clock(),
......@@ -719,7 +720,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, CancelJobsBeforeBinding) {
// Use COLD_START to make the alt job pending.
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, OK);
tcp_data_ = std::make_unique<SequencedSocketData>();
......@@ -781,7 +782,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
DoNotDelayMainJobIfQuicWasRecentlyBroken) {
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
tcp_data_ = std::make_unique<SequencedSocketData>();
tcp_data_->set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING));
......@@ -839,7 +840,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
DelayMainJobAfterRecentlyBrokenQuicWasConfirmed) {
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
tcp_data_ = std::make_unique<SequencedSocketData>();
tcp_data_->set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING));
......@@ -901,7 +902,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::TestOnStreamFailedForBothJobs(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddConnect(ASYNC, ERR_FAILED);
tcp_data_ = std::make_unique<SequencedSocketData>();
tcp_data_->set_connect_data(MockConnect(ASYNC, ERR_FAILED));
......@@ -952,7 +953,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::TestAltJobFailsAfterMainJobSucceeded(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(ASYNC, ERR_FAILED);
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
......@@ -1021,7 +1022,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// Tests that when alt job succeeds, main job is destroyed.
TEST_F(HttpStreamFactoryJobControllerTest, AltJobSucceedsMainJobDestroyed) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1069,8 +1070,8 @@ TEST_F(HttpStreamFactoryJobControllerTest, AltJobSucceedsMainJobDestroyed) {
// Regression test for crbug.com/678768.
TEST_F(HttpStreamFactoryJobControllerTest,
AltJobSucceedsMainJobBlockedControllerDestroyed) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
if (VersionUsesHttp3(kDefaultSupportedQuicVersion.transport_version)) {
quic_data_ = std::make_unique<MockQuicData>(version_);
if (version_.UsesHttp3()) {
quic_data_->AddWrite(SYNCHRONOUS,
client_maker_.MakeInitialSettingsPacket(1));
}
......@@ -1150,7 +1151,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// JobController will be cleaned up.
TEST_F(HttpStreamFactoryJobControllerTest,
OrphanedJobCompletesControllerDestroyed) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1204,7 +1205,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::TestAltJobSucceedsAfterMainJobFailed(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1272,7 +1273,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::
TestAltJobSucceedsAfterMainJobSucceeded(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1355,7 +1356,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::
TestMainJobSucceedsAfterAltJobSucceeded(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1430,7 +1431,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::TestMainJobFailsAfterAltJobSucceeded(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
// Use cold start and complete alt job manually.
crypto_client_stream_factory_.set_handshake_mode(
......@@ -1493,7 +1494,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
void HttpStreamFactoryJobControllerTest::TestMainJobSucceedsAfterAltJobFailed(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddConnect(SYNCHRONOUS, ERR_FAILED);
tcp_data_ = std::make_unique<SequencedSocketData>();
......@@ -1561,7 +1562,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// then the alternative service is not marked as broken.
TEST_F(HttpStreamFactoryJobControllerTest,
MainJobSucceedsAfterConnectionChanged) {
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddConnect(SYNCHRONOUS, ERR_NETWORK_CHANGED);
tcp_data_ = std::make_unique<SequencedSocketData>();
tcp_data_->set_connect_data(MockConnect(SYNCHRONOUS, OK));
......@@ -1603,7 +1604,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// Get load state after main job fails and before alternative job succeeds.
TEST_F(HttpStreamFactoryJobControllerTest, GetLoadStateAfterMainJobFailed) {
// Use COLD_START to complete alt job manually.
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
......@@ -1650,7 +1651,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, GetLoadStateAfterMainJobFailed) {
TEST_F(HttpStreamFactoryJobControllerTest, ResumeMainJobWhenAltJobStalls) {
// Use COLD_START to stall alt job.
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
......@@ -1719,7 +1720,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, HostResolutionHang) {
Initialize(request_info);
// handshake will fail asynchronously after mock data is unpaused.
MockQuicData quic_data(kDefaultSupportedQuicVersion);
MockQuicData quic_data(version_);
quic_data.AddRead(ASYNC, ERR_IO_PENDING); // Pause
quic_data.AddRead(ASYNC, ERR_FAILED);
quic_data.AddWrite(ASYNC, ERR_FAILED);
......@@ -1792,7 +1793,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCP) {
Initialize(request_info);
// Handshake will fail asynchronously after mock data is unpaused.
MockQuicData quic_data(kDefaultSupportedQuicVersion);
MockQuicData quic_data(version_);
quic_data.AddRead(ASYNC, ERR_IO_PENDING); // Pause
quic_data.AddRead(ASYNC, ERR_FAILED);
quic_data.AddWrite(ASYNC, ERR_FAILED);
......@@ -1934,7 +1935,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCPWithLargeSrtt) {
Initialize(request_info);
// handshake will fail asynchronously after mock data is unpaused.
MockQuicData quic_data(kDefaultSupportedQuicVersion);
MockQuicData quic_data(version_);
quic_data.AddRead(ASYNC, ERR_IO_PENDING); // Pause
quic_data.AddRead(ASYNC, ERR_FAILED);
quic_data.AddWrite(ASYNC, ERR_FAILED);
......@@ -1996,7 +1997,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
Initialize(request_info);
// handshake will fail asynchronously after mock data is unpaused.
MockQuicData quic_data(kDefaultSupportedQuicVersion);
MockQuicData quic_data(version_);
quic_data.AddRead(ASYNC, ERR_IO_PENDING); // Pause
quic_data.AddRead(ASYNC, ERR_FAILED);
quic_data.AddWrite(ASYNC, ERR_FAILED);
......@@ -2056,9 +2057,8 @@ TEST_F(HttpStreamFactoryJobControllerTest,
}
TEST_F(HttpStreamFactoryJobControllerTest, PreconnectToHostWithValidAltSvc) {
auto version = kDefaultSupportedQuicVersion;
quic_data_ = std::make_unique<MockQuicData>(version);
if (VersionUsesHttp3(version.transport_version)) {
quic_data_ = std::make_unique<MockQuicData>(version_);
if (version_.UsesHttp3()) {
quic_data_->AddWrite(SYNCHRONOUS,
client_maker_.MakeInitialSettingsPacket(1));
}
......@@ -2678,7 +2678,7 @@ TEST_F(JobControllerLimitMultipleH2Requests, H1NegotiatedForFirstRequest) {
TEST_F(JobControllerLimitMultipleH2Requests, QuicJobNotThrottled) {
crypto_client_stream_factory_.set_handshake_mode(
MockCryptoClientStream::COLD_START);
quic_data_ = std::make_unique<MockQuicData>(kDefaultSupportedQuicVersion);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
MockRead reads[] = {MockRead(SYNCHRONOUS, ERR_IO_PENDING)};
tcp_data_ =
......@@ -2743,10 +2743,9 @@ TEST_P(HttpStreamFactoryJobControllerMisdirectedRequestRetry,
const bool enable_ip_based_pooling = ::testing::get<0>(GetParam());
const bool enable_alternative_services = ::testing::get<1>(GetParam());
if (enable_alternative_services) {
auto version = kDefaultSupportedQuicVersion;
quic_data_ = std::make_unique<MockQuicData>(version);
quic_data_ = std::make_unique<MockQuicData>(version_);
quic_data_->AddConnect(SYNCHRONOUS, OK);
if (VersionUsesHttp3(version.transport_version)) {
if (version_.UsesHttp3()) {
quic_data_->AddWrite(SYNCHRONOUS,
client_maker_.MakeInitialSettingsPacket(1));
}
......
......@@ -12,14 +12,10 @@
namespace net {
// Default QUIC version used in absence of any external configuration.
constexpr quic::ParsedQuicVersion kDefaultSupportedQuicVersion =
quic::ParsedQuicVersion::Q050();
// Returns a list containing only the current default version.
// Default QUIC supprted versions used in absence of any external configuration.
inline NET_EXPORT_PRIVATE quic::ParsedQuicVersionVector
DefaultSupportedQuicVersions() {
return quic::ParsedQuicVersionVector{kDefaultSupportedQuicVersion};
return quic::ParsedQuicVersionVector{quic::ParsedQuicVersion::Q050()};
}
// When a connection is idle for 30 seconds it will be closed.
......
......@@ -81,7 +81,8 @@ std::unique_ptr<test_server::HttpResponse> HandleRequest(
const test_server::HttpRequest& request) {
std::unique_ptr<test_server::BasicHttpResponse> http_response(
new test_server::BasicHttpResponse());
std::string alpn = quic::AlpnForVersion(kDefaultSupportedQuicVersion);
std::string alpn =
quic::AlpnForVersion(DefaultSupportedQuicVersions().front());
http_response->AddCustomHeader(
"Alt-Svc", base::StringPrintf("%s=\"%s:%d\"", alpn.c_str(), kAltSvcHost,
kAltSvcPort));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment