Deprecate quic_dispatcher_hands_chlo_extractor_one_version
gfe-relnote: deprecate gfe2_restart_flag_quic_dispatcher_hands_chlo_extractor_one_version
PiperOrigin-RevId: 268104424
Change-Id: I87e36aa31ea9402d10f04d33affdb9ae5b2a0091
diff --git a/quic/core/chlo_extractor.cc b/quic/core/chlo_extractor.cc
index 38e97bd..02c0cdf 100644
--- a/quic/core/chlo_extractor.cc
+++ b/quic/core/chlo_extractor.cc
@@ -321,13 +321,12 @@
// static
bool ChloExtractor::Extract(const QuicEncryptedPacket& packet,
- const ParsedQuicVersionVector& versions,
+ ParsedQuicVersion version,
const QuicTagVector& create_session_tag_indicators,
Delegate* delegate,
uint8_t connection_id_length) {
- QUIC_DVLOG(1) << "Extracting CHLO using versions "
- << ParsedQuicVersionVectorToString(versions);
- QuicFramer framer(versions, QuicTime::Zero(), Perspective::IS_SERVER,
+ QUIC_DVLOG(1) << "Extracting CHLO using version " << version;
+ QuicFramer framer({version}, QuicTime::Zero(), Perspective::IS_SERVER,
connection_id_length);
ChloFramerVisitor visitor(&framer, create_session_tag_indicators, delegate);
framer.set_visitor(&visitor);
diff --git a/quic/core/chlo_extractor.h b/quic/core/chlo_extractor.h
index 4e53a10..3cf0d24 100644
--- a/quic/core/chlo_extractor.h
+++ b/quic/core/chlo_extractor.h
@@ -31,7 +31,7 @@
// if found will result in the session being created early, to
// enable support for multi-packet CHLOs.
static bool Extract(const QuicEncryptedPacket& packet,
- const ParsedQuicVersionVector& versions,
+ ParsedQuicVersion version,
const QuicTagVector& create_session_tag_indicators,
Delegate* delegate,
uint8_t connection_id_length);
diff --git a/quic/core/chlo_extractor_test.cc b/quic/core/chlo_extractor_test.cc
index 0aacb18..34f9ff4 100644
--- a/quic/core/chlo_extractor_test.cc
+++ b/quic/core/chlo_extractor_test.cc
@@ -119,7 +119,6 @@
// Construct a CHLO with each supported version
for (ParsedQuicVersion version : AllSupportedVersions()) {
SCOPED_TRACE(version);
- ParsedQuicVersionVector versions(SupportedVersions(version));
header_.version = version;
if (QuicVersionHasLongHeaderLengths(version.transport_version) &&
header_.version_flag) {
@@ -131,7 +130,7 @@
}
MakePacket(version, client_hello_str, /*munge_offset*/ false,
/*munge_stream_id*/ false);
- EXPECT_TRUE(ChloExtractor::Extract(*packet_, versions, {}, &delegate_,
+ EXPECT_TRUE(ChloExtractor::Extract(*packet_, version, {}, &delegate_,
kQuicDefaultConnectionIdLength))
<< ParsedQuicVersionToString(version);
EXPECT_EQ(version.transport_version, delegate_.transport_version());
@@ -152,20 +151,19 @@
std::string client_hello_str(client_hello.GetSerialized().AsStringPiece());
MakePacket(version, client_hello_str,
/*munge_offset*/ false, /*munge_stream_id*/ true);
- EXPECT_FALSE(ChloExtractor::Extract(*packet_, AllSupportedVersions(), {},
- &delegate_,
+ EXPECT_FALSE(ChloExtractor::Extract(*packet_, version, {}, &delegate_,
kQuicDefaultConnectionIdLength));
}
TEST_F(ChloExtractorTest, DoesNotFindValidChloOnWrongOffset) {
+ ParsedQuicVersion version = AllSupportedVersions()[0];
CryptoHandshakeMessage client_hello;
client_hello.set_tag(kCHLO);
std::string client_hello_str(client_hello.GetSerialized().AsStringPiece());
- MakePacket(AllSupportedVersions()[0], client_hello_str, /*munge_offset*/ true,
+ MakePacket(version, client_hello_str, /*munge_offset*/ true,
/*munge_stream_id*/ false);
- EXPECT_FALSE(ChloExtractor::Extract(*packet_, AllSupportedVersions(), {},
- &delegate_,
+ EXPECT_FALSE(ChloExtractor::Extract(*packet_, version, {}, &delegate_,
kQuicDefaultConnectionIdLength));
}
@@ -176,8 +174,7 @@
}
MakePacket(version, "foo", /*munge_offset*/ false,
/*munge_stream_id*/ true);
- EXPECT_FALSE(ChloExtractor::Extract(*packet_, AllSupportedVersions(), {},
- &delegate_,
+ EXPECT_FALSE(ChloExtractor::Extract(*packet_, version, {}, &delegate_,
kQuicDefaultConnectionIdLength));
}
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 542d205..6a4ce01 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -451,20 +451,8 @@
ProcessChlo(/*alpn=*/"", packet_info);
break;
}
- ParsedQuicVersionVector chlo_extractor_versions;
- if (!GetQuicRestartFlag(
- quic_dispatcher_hands_chlo_extractor_one_version)) {
- chlo_extractor_versions = GetSupportedVersions();
- } else {
- QUIC_RESTART_FLAG_COUNT(
- quic_dispatcher_hands_chlo_extractor_one_version);
- chlo_extractor_versions = {packet_info->version};
- // TODO(dschinazi) once we deprecate
- // quic_dispatcher_hands_chlo_extractor_one_version, we should change
- // ChloExtractor::Extract to only take one version.
- }
if (GetQuicFlag(FLAGS_quic_allow_chlo_buffering) &&
- !ChloExtractor::Extract(packet_info->packet, chlo_extractor_versions,
+ !ChloExtractor::Extract(packet_info->packet, packet_info->version,
config_->create_session_tag_indicators(),
&alpn_extractor,
server_connection_id.length())) {
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index edb7ee1..f52fa64 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -301,7 +301,7 @@
std::unique_ptr<QuicReceivedPacket> received_packet(
ConstructReceivedPacket(*packet, mock_helper_.GetClock()->Now()));
- if (ChloExtractor::Extract(*packet, versions, {}, nullptr,
+ if (ChloExtractor::Extract(*packet, version, {}, nullptr,
server_connection_id.length())) {
// Add CHLO packet to the beginning to be verified first, because it is
// also processed first by new session.
@@ -929,7 +929,6 @@
}
TEST_F(QuicDispatcherTest, SupportedTransportVersionsChangeInFlight) {
- SetQuicRestartFlag(quic_dispatcher_hands_chlo_extractor_one_version, true);
SetQuicReloadableFlag(quic_use_parse_public_header, true);
static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 6u,
"Supported versions out of sync");
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 8281b68..4900911 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -458,7 +458,6 @@
SetQuicFlag(FLAGS_quic_supports_tls_handshake, true);
SetQuicReloadableFlag(quic_simplify_stop_waiting, true);
SetQuicReloadableFlag(quic_use_parse_public_header, true);
- SetQuicRestartFlag(quic_dispatcher_hands_chlo_extractor_one_version, true);
SetQuicRestartFlag(quic_use_hashed_stateless_reset_tokens, true);
}