Commit 81ff1d01 authored by Ryan Hamilton's avatar Ryan Hamilton Committed by Commit Bot

Allow QUIC versions to be specified via ALPN strings in both finch and --quic_version.

Change-Id: I67f7388eb33ae55ff527f31d9c0eb73dd4f2eb19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1778965
Auto-Submit: Ryan Hamilton <rch@chromium.org>
Reviewed-by: default avatarBrad Lassey <lassey@chromium.org>
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692334}
parent 0790bb00
......@@ -634,6 +634,12 @@ quic::ParsedQuicVersionVector ParseQuicVersions(
}
it++;
}
for (const auto& supported_version : quic::AllSupportedVersions()) {
if (quic::AlpnForVersion(supported_version) == version) {
supported_versions.push_back(supported_version);
break;
}
}
}
return supported_versions;
}
......
......@@ -508,6 +508,19 @@ TEST_F(NetworkSessionConfiguratorTest, QuicVersionFromFieldTrialParams) {
EXPECT_EQ(supported_versions, params_.quic_params.supported_versions);
}
TEST_F(NetworkSessionConfiguratorTest, QuicVersionFromFieldTrialParamsAlpn) {
std::map<std::string, std::string> field_trial_params;
field_trial_params["quic_version"] = "h3-T048";
variations::AssociateVariationParams("QUIC", "Enabled", field_trial_params);
base::FieldTrialList::CreateFieldTrial("QUIC", "Enabled");
ParseFieldTrials();
quic::ParsedQuicVersionVector supported_versions = {
{quic::PROTOCOL_TLS1_3, quic::QUIC_VERSION_48}};
EXPECT_EQ(supported_versions, params_.quic_params.supported_versions);
}
TEST_F(NetworkSessionConfiguratorTest,
MultipleQuicVersionFromFieldTrialParams) {
std::map<std::string, std::string> field_trial_params;
......@@ -703,6 +716,18 @@ TEST_F(NetworkSessionConfiguratorTest, QuicVersion) {
}
}
TEST_F(NetworkSessionConfiguratorTest, QuicVersionAlpn) {
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitch(switches::kEnableQuic);
command_line.AppendSwitchASCII(switches::kQuicVersion, "h3-T048");
ParseCommandLineAndFieldTrials(command_line);
quic::ParsedQuicVersionVector supported_versions = {
{quic::PROTOCOL_TLS1_3, quic::QUIC_VERSION_48}};
EXPECT_EQ(supported_versions, params_.quic_params.supported_versions);
}
TEST_F(NetworkSessionConfiguratorTest, OriginToForceQuicOn) {
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitch(switches::kEnableQuic);
......
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