Add quic_enable_chaos_protection flag This CL adds a new protocol flag that will be used by some Chrome tests that expect specific packet formats and therefore don't like chaos protection. This CL is a no-op outside of those tests.
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc index a9f16e0..19168fb 100644 --- a/quic/core/quic_packet_creator.cc +++ b/quic/core/quic_packet_creator.cc
@@ -131,8 +131,9 @@ fully_pad_crypto_handshake_packets_(true), latched_hard_max_packet_length_(0), max_datagram_frame_size_(0), - chaos_protection_enabled_(framer->perspective() == - Perspective::IS_CLIENT) { + chaos_protection_enabled_( + GetQuicFlag(FLAGS_quic_enable_chaos_protection) && + framer->perspective() == Perspective::IS_CLIENT) { SetMaxPacketLength(kDefaultMaxPacketSize); if (!framer_->version().UsesTls()) { // QUIC+TLS negotiates the maximum datagram frame size via the
diff --git a/quic/core/quic_protocol_flags_list.h b/quic/core/quic_protocol_flags_list.h index 02f107b..3e32713 100644 --- a/quic/core/quic_protocol_flags_list.h +++ b/quic/core/quic_protocol_flags_list.h
@@ -128,6 +128,10 @@ true, "If true, use random greased settings and frames.") +QUIC_PROTOCOL_FLAG( + bool, quic_enable_chaos_protection, true, + "If true, use chaos protection to randomize client initials.") + QUIC_PROTOCOL_FLAG(int64_t, quic_max_tracked_packet_count, 10000,