Deprecate --gfe2_reloadable_flag_reset_content_length_status_when_removing_content_length_header.

PiperOrigin-RevId: 883194410
diff --git a/quiche/balsa/balsa_headers.cc b/quiche/balsa/balsa_headers.cc
index dcb3aa2..fae19d3 100644
--- a/quiche/balsa/balsa_headers.cc
+++ b/quiche/balsa/balsa_headers.cc
@@ -325,12 +325,6 @@
 // header we're removing is one of those headers.
 void BalsaHeaders::MaybeClearSpecialHeaderValues(absl::string_view key) {
   if (absl::EqualsIgnoreCase(key, kContentLength)) {
-    if (transfer_encoding_is_chunked_ &&
-        !GetQuicheReloadableFlag(
-            reset_content_length_status_when_removing_content_length_header)) {
-      return;
-    }
-
     content_length_status_ = BalsaHeadersEnums::NO_CONTENT_LENGTH;
     content_length_ = 0;
     return;
diff --git a/quiche/balsa/balsa_headers_test.cc b/quiche/balsa/balsa_headers_test.cc
index f67a078..75e43f1 100644
--- a/quiche/balsa/balsa_headers_test.cc
+++ b/quiche/balsa/balsa_headers_test.cc
@@ -3170,24 +3170,7 @@
   EXPECT_FALSE(headers.transfer_encoding_is_chunked());
 }
 
-class BalsaHeadersClearContentLengthTest : public QuicheTestWithParam<bool> {
- public:
-  BalsaHeadersClearContentLengthTest()
-      : flag_reset_content_length_status_when_removing_content_length_header_(
-            GetParam()) {
-    SetQuicheReloadableFlag(
-        reset_content_length_status_when_removing_content_length_header,
-        flag_reset_content_length_status_when_removing_content_length_header_);
-  }
-
- protected:
-  bool flag_reset_content_length_status_when_removing_content_length_header_;
-};
-
-INSTANTIATE_TEST_SUITE_P(BalsaHeadersClearContentLengthTest,
-                         BalsaHeadersClearContentLengthTest, testing::Bool());
-
-TEST_P(BalsaHeadersClearContentLengthTest, ClearContentLength) {
+TEST(BalsaHeaders, ClearContentLength) {
   // Test that ClearContentLength() removes the content-length header and
   // resets content_length_status().
   BalsaHeaders headers;
@@ -3235,20 +3218,13 @@
   EXPECT_EQ("chunked", headers.GetAllOfHeaderAsString("Transfer-Encoding"));
   EXPECT_TRUE(headers.transfer_encoding_is_chunked());
   EXPECT_FALSE(headers.HasHeader("Content-length"));
-  if (flag_reset_content_length_status_when_removing_content_length_header_) {
-    EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_FALSE(headers.content_length_valid());
-    EXPECT_EQ(0u, headers.content_length());
-  } else {
-    EXPECT_EQ(BalsaHeadersEnums::VALID_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_TRUE(headers.content_length_valid());
-    EXPECT_EQ(10u, headers.content_length());
-  }
+  EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
+            headers.content_length_status());
+  EXPECT_FALSE(headers.content_length_valid());
+  EXPECT_EQ(0u, headers.content_length());
 }
 
-TEST_P(BalsaHeadersClearContentLengthTest, ClearContentLengthByRemoveHeader) {
+TEST(BalsaHeaders, ClearContentLengthByRemoveHeader) {
   // Test that calling Remove() methods to clear the content-length header
   // correctly resets internal content length fields.
   BalsaHeaders headers;
@@ -3279,8 +3255,7 @@
 // Test that calling Remove() methods to clear the content-length header
 // correctly resets internal content length fields when the Transfer-Encoding
 // header is present.
-TEST_P(BalsaHeadersClearContentLengthTest,
-       ClearContentLengthByRemoveHeaderWithTransferEncodingHeader) {
+TEST(BalsaHeaders, ClearContentLengthByRemoveHeaderWithTransferEncodingHeader) {
   BalsaHeaders headers;
   headers.SetContentLength(10);
   // We cannot use SetTransferEncodingToChunkedAndClearContentLength() here
@@ -3288,17 +3263,10 @@
   headers.ReplaceOrAppendHeader("Transfer-Encoding", "chunked");
   BalsaHeadersTestPeer::set_transfer_encoding_is_chunked(&headers, true);
   headers.RemoveAllOfHeader("Content-Length");
-  if (flag_reset_content_length_status_when_removing_content_length_header_) {
-    EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(0u, headers.content_length());
-    EXPECT_FALSE(headers.content_length_valid());
-  } else {
-    EXPECT_EQ(BalsaHeadersEnums::VALID_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(10u, headers.content_length());
-    EXPECT_TRUE(headers.content_length_valid());
-  }
+  EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
+            headers.content_length_status());
+  EXPECT_EQ(0u, headers.content_length());
+  EXPECT_FALSE(headers.content_length_valid());
 
   headers.SetContentLength(11);
   headers.ReplaceOrAppendHeader("Transfer-Encoding", "chunked");
@@ -3306,37 +3274,23 @@
   std::vector<absl::string_view> headers_to_remove;
   headers_to_remove.emplace_back("Content-Length");
   headers.RemoveAllOfHeaderInList(headers_to_remove);
-  if (flag_reset_content_length_status_when_removing_content_length_header_) {
-    EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(0u, headers.content_length());
-    EXPECT_FALSE(headers.content_length_valid());
-  } else {
-    EXPECT_EQ(BalsaHeadersEnums::VALID_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(11u, headers.content_length());
-    EXPECT_TRUE(headers.content_length_valid());
-  }
+  EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
+            headers.content_length_status());
+  EXPECT_EQ(0u, headers.content_length());
+  EXPECT_FALSE(headers.content_length_valid());
 
   headers.SetContentLength(12);
   headers.ReplaceOrAppendHeader("Transfer-Encoding", "chunked");
   BalsaHeadersTestPeer::set_transfer_encoding_is_chunked(&headers, true);
   headers.RemoveAllHeadersWithPrefix("Content");
-  if (flag_reset_content_length_status_when_removing_content_length_header_) {
-    EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(0u, headers.content_length());
-    EXPECT_FALSE(headers.content_length_valid());
-  } else {
-    EXPECT_EQ(BalsaHeadersEnums::VALID_CONTENT_LENGTH,
-              headers.content_length_status());
-    EXPECT_EQ(12u, headers.content_length());
-    EXPECT_TRUE(headers.content_length_valid());
-  }
+  EXPECT_EQ(BalsaHeadersEnums::NO_CONTENT_LENGTH,
+            headers.content_length_status());
+  EXPECT_EQ(0u, headers.content_length());
+  EXPECT_FALSE(headers.content_length_valid());
 }
 
 // Chunk-encoding an identity-coded BalsaHeaders removes the identity-coding.
-TEST_P(BalsaHeadersClearContentLengthTest, IdentityCodingToChunked) {
+TEST(BalsaHeaders, IdentityCodingToChunked) {
   std::string message =
       "HTTP/1.1 200 OK\r\n"
       "Transfer-Encoding: identity\r\n\r\n";
@@ -3360,7 +3314,7 @@
               ElementsAre("chunked"));
 }
 
-TEST_P(BalsaHeadersClearContentLengthTest, SwitchContentLengthToChunk) {
+TEST(BalsaHeaders, SwitchContentLengthToChunk) {
   // Test that a header originally with content length header is correctly
   // switched to using chunk encoding.
   BalsaHeaders headers;
@@ -3379,7 +3333,7 @@
   EXPECT_FALSE(headers.content_length_valid());
 }
 
-TEST_P(BalsaHeadersClearContentLengthTest, SwitchChunkedToContentLength) {
+TEST(BalsaHeaders, SwitchChunkedToContentLength) {
   // Test that a header originally with chunk encoding is correctly
   // switched to using content length.
   BalsaHeaders headers;
diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index 62149f3..66751cf 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -69,7 +69,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_inlining_send_buffer_everywhere, true, true, "Use QuicStreamSendBufferInlining consistently everywhere in the codebase.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_proof_source_get_cert_chains, true, true, "When true, quic::TlsServerHandshaker will use ProofSource::GetCertChains() instead of ProofSource::GetCertChain()")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_use_received_client_addresses_cache, true, true, "If true, use a LRU cache to record client addresses of packets received on server's original address.")
-QUICHE_FLAG(bool, quiche_reloadable_flag_reset_content_length_status_when_removing_content_length_header, true, true, "If true, the content_length_status field in balsa_headers will always be reset when the Content-Length header is removed, no matter if the Transfer-Encoding header is chuncked or not.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_dispatcher_close_connection_on_invalid_ack, false, false, "An invalid ack is an ack that the peer sent for a packet that was not sent by the dispatcher. If true, the dispatcher will close the connection if it receives an invalid ack.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_shed_tls_handshake_config, false, false, "If true, QUIC connections will call SSL_set_shed_handshake_config to drop BoringSSL handshake state after the handshake finishes in order to save memory.")
 QUICHE_FLAG(bool, quiche_restart_flag_quic_stop_parsing_legacy_version_info, true, true, "If true, disable parsing the legacy version information transport parameter.")