Deprecate quic_use_parse_public_header
gfe-relnote: deprecate gfe2_reloadable_flag_quic_use_parse_public_header
NO_BUG=GFE flag deprecation
fayang: please review /gfe/gfe2/e2e
PiperOrigin-RevId: 273374559
Change-Id: I654fd8ee3222cf46806da3e35f979de1ff4c6eef
diff --git a/quic/core/http/end_to_end_test.cc b/quic/core/http/end_to_end_test.cc
index 2d0fa34..be5c5ee 100644
--- a/quic/core/http/end_to_end_test.cc
+++ b/quic/core/http/end_to_end_test.cc
@@ -726,7 +726,6 @@
}
TEST_P(EndToEndTest, SimpleRequestResponseForcedVersionNegotiation) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
client_supported_versions_.insert(client_supported_versions_.begin(),
QuicVersionReservedForNegotiation());
ASSERT_TRUE(Initialize());
@@ -739,7 +738,6 @@
}
TEST_P(EndToEndTestWithTls, ForcedVersionNegotiation) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
client_supported_versions_.insert(client_supported_versions_.begin(),
QuicVersionReservedForNegotiation());
ASSERT_TRUE(Initialize());
@@ -846,7 +844,6 @@
ASSERT_TRUE(Initialize());
return;
}
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
client_supported_versions_.insert(client_supported_versions_.begin(),
QuicVersionReservedForNegotiation());
override_client_connection_id_length_ = kQuicDefaultConnectionIdLength;
@@ -867,7 +864,6 @@
ASSERT_TRUE(Initialize());
return;
}
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
client_supported_versions_.insert(client_supported_versions_.begin(),
QuicVersionReservedForNegotiation());
override_server_connection_id_length_ = 9;
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index b130fe9..eec468a 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -266,34 +266,21 @@
QuicStringPiece(packet.data(), packet.length()));
ReceivedPacketInfo packet_info(self_address, peer_address, packet);
std::string detailed_error;
- QuicErrorCode error;
- if (!GetQuicReloadableFlag(quic_use_parse_public_header)) {
- error = QuicFramer::ProcessPacketDispatcher(
- packet, expected_server_connection_id_length_, &packet_info.form,
- &packet_info.version_flag, &packet_info.version_label,
- &packet_info.destination_connection_id,
- &packet_info.source_connection_id, &detailed_error);
- } else {
- QUIC_RELOADABLE_FLAG_COUNT(quic_use_parse_public_header);
- bool retry_token_present;
- QuicStringPiece retry_token;
- error = QuicFramer::ParsePublicHeaderDispatcher(
- packet, expected_server_connection_id_length_, &packet_info.form,
- &packet_info.long_packet_type, &packet_info.version_flag,
- &packet_info.use_length_prefix, &packet_info.version_label,
- &packet_info.version, &packet_info.destination_connection_id,
- &packet_info.source_connection_id, &retry_token_present, &retry_token,
- &detailed_error);
- }
+ bool retry_token_present;
+ QuicStringPiece retry_token;
+ const QuicErrorCode error = QuicFramer::ParsePublicHeaderDispatcher(
+ packet, expected_server_connection_id_length_, &packet_info.form,
+ &packet_info.long_packet_type, &packet_info.version_flag,
+ &packet_info.use_length_prefix, &packet_info.version_label,
+ &packet_info.version, &packet_info.destination_connection_id,
+ &packet_info.source_connection_id, &retry_token_present, &retry_token,
+ &detailed_error);
if (error != QUIC_NO_ERROR) {
// Packet has framing error.
SetLastError(error);
QUIC_DLOG(ERROR) << detailed_error;
return;
}
- if (!GetQuicReloadableFlag(quic_use_parse_public_header)) {
- packet_info.version = ParseQuicVersionLabel(packet_info.version_label);
- }
if (packet_info.destination_connection_id.length() !=
expected_server_connection_id_length_ &&
!should_update_expected_server_connection_id_length_ &&
@@ -477,8 +464,7 @@
return true;
}
- if (GetQuicReloadableFlag(quic_use_parse_public_header) &&
- GetQuicReloadableFlag(quic_donot_process_small_initial_packets) &&
+ if (GetQuicReloadableFlag(quic_donot_process_small_initial_packets) &&
crypto_config()->validate_chlo_size() &&
packet_info.form == IETF_QUIC_LONG_HEADER_PACKET &&
packet_info.long_packet_type == INITIAL &&
diff --git a/quic/core/quic_dispatcher_test.cc b/quic/core/quic_dispatcher_test.cc
index 2c757a4..48a1aa6 100644
--- a/quic/core/quic_dispatcher_test.cc
+++ b/quic/core/quic_dispatcher_test.cc
@@ -529,7 +529,6 @@
}
TEST_F(QuicDispatcherTest, StatelessVersionNegotiation) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
@@ -548,7 +547,6 @@
}
TEST_F(QuicDispatcherTest, StatelessVersionNegotiationWithClientConnectionId) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
@@ -589,7 +587,6 @@
// Disabling CHLO size validation allows the dispatcher to send version
// negotiation packets in response to a CHLO that is otherwise too small.
TEST_F(QuicDispatcherTest, VersionNegotiationWithoutChloSizeValidation) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
crypto_config_.set_validate_chlo_size(false);
CreateTimeWaitListManager();
@@ -933,7 +930,6 @@
}
TEST_F(QuicDispatcherTest, SupportedTransportVersionsChangeInFlight) {
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
static_assert(QUIC_ARRAYSIZE(kSupportedTransportVersions) == 7u,
"Supported versions out of sync");
SetQuicReloadableFlag(quic_disable_version_39, false);
@@ -1048,7 +1044,6 @@
TEST_F(QuicDispatcherTest, VersionNegotiationProbe) {
SetQuicFlag(FLAGS_quic_prober_uses_length_prefixed_connection_ids, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
SetQuicReloadableFlag(quic_use_length_prefix_from_packet_info, true);
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
CreateTimeWaitListManager();
@@ -1148,7 +1143,6 @@
TEST_F(QuicDispatcherTest, VersionNegotiationProbeEndToEnd) {
SetQuicFlag(FLAGS_quic_prober_uses_length_prefixed_connection_ids, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
SetQuicReloadableFlag(quic_use_length_prefix_from_packet_info, true);
SavingWriter* saving_writer = new SavingWriter();
@@ -1344,7 +1338,6 @@
TEST_F(QuicDispatcherTest, DoNotProcessSmallPacket) {
SetQuicReloadableFlag(quic_donot_process_small_initial_packets, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
CreateTimeWaitListManager();
QuicSocketAddress client_address(QuicIpAddress::Loopback4(), 1);
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 6b55cfc..f792273 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -6234,87 +6234,6 @@
}
// static
-QuicErrorCode QuicFramer::ProcessPacketDispatcher(
- const QuicEncryptedPacket& packet,
- uint8_t expected_destination_connection_id_length,
- PacketHeaderFormat* format,
- bool* version_flag,
- QuicVersionLabel* version_label,
- QuicConnectionId* destination_connection_id,
- QuicConnectionId* source_connection_id,
- std::string* detailed_error) {
- DCHECK(!GetQuicReloadableFlag(quic_use_parse_public_header));
- QuicDataReader reader(packet.data(), packet.length());
-
- *source_connection_id = EmptyQuicConnectionId();
- uint8_t first_byte;
- if (!reader.ReadBytes(&first_byte, 1)) {
- *detailed_error = "Unable to read first byte.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- uint8_t destination_connection_id_length = 0, source_connection_id_length = 0;
- if (!QuicUtils::IsIetfPacketHeader(first_byte)) {
- *format = GOOGLE_QUIC_PACKET;
- *version_flag = (first_byte & PACKET_PUBLIC_FLAGS_VERSION) != 0;
- destination_connection_id_length =
- first_byte & PACKET_PUBLIC_FLAGS_8BYTE_CONNECTION_ID;
- if (destination_connection_id_length == 0 ||
- !reader.ReadConnectionId(destination_connection_id,
- destination_connection_id_length)) {
- *detailed_error = "Unable to read ConnectionId.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- if (*version_flag && !ProcessVersionLabel(&reader, version_label)) {
- *detailed_error = "Unable to read protocol version.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- return QUIC_NO_ERROR;
- }
-
- *format = GetIetfPacketHeaderFormat(first_byte);
- QUIC_DVLOG(1) << "Dispatcher: Processing IETF QUIC packet, format: "
- << *format;
- *version_flag = *format == IETF_QUIC_LONG_HEADER_PACKET;
- if (*format == IETF_QUIC_LONG_HEADER_PACKET) {
- if (!ProcessVersionLabel(&reader, version_label)) {
- *detailed_error = "Unable to read protocol version.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- // Set should_update_expected_server_connection_id_length to true to bypass
- // connection ID lengths validation.
- uint8_t unused_expected_server_connection_id_length = 0;
- if (!ProcessAndValidateIetfConnectionIdLength(
- &reader, ParseQuicVersionLabel(*version_label),
- Perspective::IS_SERVER,
- /*should_update_expected_server_connection_id_length=*/true,
- &unused_expected_server_connection_id_length,
- &destination_connection_id_length, &source_connection_id_length,
- detailed_error)) {
- return QUIC_INVALID_PACKET_HEADER;
- }
- } else {
- // For short header packets, expected_destination_connection_id_length
- // is used to determine the destination_connection_id_length.
- destination_connection_id_length =
- expected_destination_connection_id_length;
- DCHECK_EQ(0, source_connection_id_length);
- }
- // Read destination connection ID.
- if (!reader.ReadConnectionId(destination_connection_id,
- destination_connection_id_length)) {
- *detailed_error = "Unable to read destination connection ID.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- // Read source connection ID.
- if (!reader.ReadConnectionId(source_connection_id,
- source_connection_id_length)) {
- *detailed_error = "Unable to read source connection ID.";
- return QUIC_INVALID_PACKET_HEADER;
- }
- return QUIC_NO_ERROR;
-}
-
-// static
QuicErrorCode QuicFramer::ParsePublicHeaderDispatcher(
const QuicEncryptedPacket& packet,
uint8_t expected_destination_connection_id_length,
diff --git a/quic/core/quic_framer.h b/quic/core/quic_framer.h
index 3d4c063..8421c10 100644
--- a/quic/core/quic_framer.h
+++ b/quic/core/quic_framer.h
@@ -380,21 +380,6 @@
uint64_t retry_token_length,
QuicVariableLengthIntegerLength length_length);
- // Lightweight parsing of |packet| and populates |format|, |version_flag|,
- // |version_label|, |destination_connection_id|, |source_connection_id| and
- // |detailed_error|. Please note, |expected_destination_connection_id_length|
- // is only used to determine IETF short header packet's destination
- // connection ID length.
- static QuicErrorCode ProcessPacketDispatcher(
- const QuicEncryptedPacket& packet,
- uint8_t expected_destination_connection_id_length,
- PacketHeaderFormat* format,
- bool* version_flag,
- QuicVersionLabel* version_label,
- QuicConnectionId* destination_connection_id,
- QuicConnectionId* source_connection_id,
- std::string* detailed_error);
-
// Parses the unencryoted fields in a QUIC header using |reader| as input,
// stores the result in the other parameters.
// |expected_destination_connection_id_length| is only used for short headers.
diff --git a/quic/core/quic_framer_test.cc b/quic/core/quic_framer_test.cc
index e15633f..646e9ee 100644
--- a/quic/core/quic_framer_test.cc
+++ b/quic/core/quic_framer_test.cc
@@ -1021,24 +1021,16 @@
QuicConnectionId destination_connection_id, source_connection_id;
QuicVersionLabel version_label;
std::string detailed_error;
- QuicErrorCode error_code;
- if (!GetQuicReloadableFlag(quic_use_parse_public_header)) {
- error_code = QuicFramer::ProcessPacketDispatcher(
- *encrypted, kQuicDefaultConnectionIdLength, &format, &version_flag,
- &version_label, &destination_connection_id, &source_connection_id,
- &detailed_error);
- } else {
- bool retry_token_present, use_length_prefix;
- QuicStringPiece retry_token;
- ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
- error_code = QuicFramer::ParsePublicHeaderDispatcher(
- *encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
- &version_flag, &use_length_prefix, &version_label, &parsed_version,
- &destination_connection_id, &source_connection_id, &retry_token_present,
- &retry_token, &detailed_error);
- EXPECT_FALSE(retry_token_present);
- EXPECT_FALSE(use_length_prefix);
- }
+ bool retry_token_present, use_length_prefix;
+ QuicStringPiece retry_token;
+ ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
+ const QuicErrorCode error_code = QuicFramer::ParsePublicHeaderDispatcher(
+ *encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
+ &version_flag, &use_length_prefix, &version_label, &parsed_version,
+ &destination_connection_id, &source_connection_id, &retry_token_present,
+ &retry_token, &detailed_error);
+ EXPECT_FALSE(retry_token_present);
+ EXPECT_FALSE(use_length_prefix);
EXPECT_EQ(QUIC_NO_ERROR, error_code);
EXPECT_EQ(GOOGLE_QUIC_PACKET, format);
EXPECT_FALSE(version_flag);
@@ -1050,9 +1042,9 @@
TEST_P(QuicFramerTest, LongPacketHeader) {
// clang-format off
PacketFragments packet46 = {
- // type (long header with packet type INITIAL)
+ // type (long header with packet type ZERO_RTT)
{"Unable to read first byte.",
- {0xC3}},
+ {0xD3}},
// version tag
{"Unable to read protocol version.",
{QUIC_VERSION_BYTES}},
@@ -1073,6 +1065,7 @@
return;
}
+ SetDecrypterLevel(ENCRYPTION_ZERO_RTT);
std::unique_ptr<QuicEncryptedPacket> encrypted(
AssemblePacketFromFragments(packet46));
@@ -1093,24 +1086,18 @@
QuicConnectionId destination_connection_id, source_connection_id;
QuicVersionLabel version_label;
std::string detailed_error;
- QuicErrorCode error_code;
- if (!GetQuicReloadableFlag(quic_use_parse_public_header)) {
- error_code = QuicFramer::ProcessPacketDispatcher(
- *encrypted, kQuicDefaultConnectionIdLength, &format, &version_flag,
- &version_label, &destination_connection_id, &source_connection_id,
- &detailed_error);
- } else {
- bool retry_token_present, use_length_prefix;
- QuicStringPiece retry_token;
- ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
- error_code = QuicFramer::ParsePublicHeaderDispatcher(
- *encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
- &version_flag, &use_length_prefix, &version_label, &parsed_version,
- &destination_connection_id, &source_connection_id, &retry_token_present,
- &retry_token, &detailed_error);
- EXPECT_EQ(retry_token_present, framer_.version().SupportsRetry());
- EXPECT_FALSE(use_length_prefix);
- }
+ bool retry_token_present, use_length_prefix;
+ QuicStringPiece retry_token;
+ ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
+ const QuicErrorCode error_code = QuicFramer::ParsePublicHeaderDispatcher(
+ *encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
+ &version_flag, &use_length_prefix, &version_label, &parsed_version,
+ &destination_connection_id, &source_connection_id, &retry_token_present,
+ &retry_token, &detailed_error);
+ EXPECT_EQ(QUIC_NO_ERROR, error_code);
+ EXPECT_EQ("", detailed_error);
+ EXPECT_FALSE(retry_token_present);
+ EXPECT_FALSE(use_length_prefix);
EXPECT_EQ(IETF_QUIC_LONG_HEADER_PACKET, format);
EXPECT_TRUE(version_flag);
EXPECT_EQ(kQuicDefaultConnectionIdLength, destination_connection_id.length());
@@ -1123,7 +1110,6 @@
// This test requires an IETF long header.
return;
}
- SetQuicReloadableFlag(quic_use_parse_public_header, false);
SetDecrypterLevel(ENCRYPTION_ZERO_RTT);
// clang-format off
unsigned char packet[] = {
@@ -1138,6 +1124,25 @@
0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
// source connection ID
0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x11,
+ // packet number
+ 0x12, 0x34, 0x56, 0x00,
+ // padding frame
+ 0x00,
+ };
+ unsigned char packet49[] = {
+ // public flags (long header with packet type ZERO_RTT_PROTECTED and
+ // 4-byte packet number)
+ 0xD3,
+ // version
+ QUIC_VERSION_BYTES,
+ // destination connection ID length
+ 0x08,
+ // destination connection ID
+ 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10,
+ // source connection ID length
+ 0x08,
+ // source connection ID
+ 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x11,
// long header packet length
0x05,
// packet number
@@ -1147,31 +1152,32 @@
};
// clang-format on
- QuicEncryptedPacket encrypted(AsChars(packet), QUIC_ARRAYSIZE(packet), false);
+ unsigned char* p = packet;
+ size_t p_length = QUIC_ARRAYSIZE(packet);
+ if (framer_.transport_version() >= QUIC_VERSION_49) {
+ p = packet49;
+ p_length = QUIC_ARRAYSIZE(packet49);
+ }
+
+ QuicEncryptedPacket encrypted(AsChars(p), p_length, false);
PacketHeaderFormat format = GOOGLE_QUIC_PACKET;
QuicLongHeaderType long_packet_type = INVALID_PACKET_TYPE;
bool version_flag = false;
QuicConnectionId destination_connection_id, source_connection_id;
QuicVersionLabel version_label = 0;
std::string detailed_error = "";
- QuicErrorCode error_code;
- if (!GetQuicReloadableFlag(quic_use_parse_public_header)) {
- error_code = QuicFramer::ProcessPacketDispatcher(
- encrypted, kQuicDefaultConnectionIdLength, &format, &version_flag,
- &version_label, &destination_connection_id, &source_connection_id,
- &detailed_error);
- } else {
- bool retry_token_present, use_length_prefix;
- QuicStringPiece retry_token;
- ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
- error_code = QuicFramer::ParsePublicHeaderDispatcher(
- encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
- &version_flag, &use_length_prefix, &version_label, &parsed_version,
- &destination_connection_id, &source_connection_id, &retry_token_present,
- &retry_token, &detailed_error);
- EXPECT_FALSE(retry_token_present);
- EXPECT_FALSE(use_length_prefix);
- }
+ bool retry_token_present, use_length_prefix;
+ QuicStringPiece retry_token;
+ ParsedQuicVersion parsed_version = UnsupportedQuicVersion();
+ const QuicErrorCode error_code = QuicFramer::ParsePublicHeaderDispatcher(
+ encrypted, kQuicDefaultConnectionIdLength, &format, &long_packet_type,
+ &version_flag, &use_length_prefix, &version_label, &parsed_version,
+ &destination_connection_id, &source_connection_id, &retry_token_present,
+ &retry_token, &detailed_error);
+ EXPECT_EQ(QUIC_NO_ERROR, error_code);
+ EXPECT_FALSE(retry_token_present);
+ EXPECT_EQ(framer_.version().HasLengthPrefixedConnectionIds(),
+ use_length_prefix);
EXPECT_EQ("", detailed_error);
EXPECT_EQ(IETF_QUIC_LONG_HEADER_PACKET, format);
EXPECT_TRUE(version_flag);
diff --git a/quic/core/quic_packets.h b/quic/core/quic_packets.h
index 7faa741..82647c6 100644
--- a/quic/core/quic_packets.h
+++ b/quic/core/quic_packets.h
@@ -435,7 +435,6 @@
const QuicSocketAddress& peer_address;
const QuicReceivedPacket& packet;
- // Fields below are populated by QuicFramer::ProcessPacketDispatcher.
PacketHeaderFormat form;
// This is only used if the form is IETF_QUIC_LONG_HEADER_PACKET.
QuicLongHeaderType long_packet_type;
diff --git a/quic/core/quic_version_manager_test.cc b/quic/core/quic_version_manager_test.cc
index c8e4807..b73b729 100644
--- a/quic/core/quic_version_manager_test.cc
+++ b/quic/core/quic_version_manager_test.cc
@@ -48,7 +48,6 @@
manager.GetSupportedTransportVersions());
SetQuicReloadableFlag(quic_enable_version_49, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
EXPECT_EQ(QuicTransportVersionVector({QUIC_VERSION_49, QUIC_VERSION_48,
QUIC_VERSION_47, QUIC_VERSION_46,
QUIC_VERSION_43, QUIC_VERSION_39}),
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 223780b..1247eaf 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -265,13 +265,11 @@
continue;
}
if (version.transport_version == QUIC_VERSION_99) {
- if (GetQuicReloadableFlag(quic_enable_version_99) &&
- GetQuicReloadableFlag(quic_use_parse_public_header)) {
+ if (GetQuicReloadableFlag(quic_enable_version_99)) {
filtered_versions.push_back(version);
}
} else if (version.transport_version == QUIC_VERSION_49) {
- if (GetQuicReloadableFlag(quic_enable_version_49) &&
- GetQuicReloadableFlag(quic_use_parse_public_header)) {
+ if (GetQuicReloadableFlag(quic_enable_version_49)) {
filtered_versions.push_back(version);
}
} else if (version.transport_version == QUIC_VERSION_48) {
@@ -474,7 +472,6 @@
// Enable necessary flags.
SetQuicReloadableFlag(quic_supports_tls_handshake, true);
SetQuicReloadableFlag(quic_simplify_stop_waiting, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
SetQuicRestartFlag(quic_use_hashed_stateless_reset_tokens, true);
}
diff --git a/quic/core/quic_versions_test.cc b/quic/core/quic_versions_test.cc
index a037639..1ab12e5 100644
--- a/quic/core/quic_versions_test.cc
+++ b/quic/core/quic_versions_test.cc
@@ -300,7 +300,6 @@
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_99, true);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
ParsedQuicVersionVector parsed_versions;
for (QuicTransportVersion version : all_versions) {
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));
@@ -327,7 +326,6 @@
SetQuicReloadableFlag(quic_enable_version_48_2, true);
SetQuicReloadableFlag(quic_enable_version_49, true);
SetQuicReloadableFlag(quic_enable_version_99, false);
- SetQuicReloadableFlag(quic_use_parse_public_header, true);
ParsedQuicVersionVector parsed_versions;
for (QuicTransportVersion version : all_versions) {
parsed_versions.push_back(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version));