Deprecate --gfe2_reloadable_flag_quic_ignore_old_priority_update_frame.

PiperOrigin-RevId: 379531754
diff --git a/quic/core/http/http_decoder.cc b/quic/core/http/http_decoder.cc
index 6d9290a..5fd6b65 100644
--- a/quic/core/http/http_decoder.cc
+++ b/quic/core/http/http_decoder.cc
@@ -37,13 +37,8 @@
       remaining_push_id_length_(0),
       error_(QUIC_NO_ERROR),
       error_detail_(""),
-      ignore_old_priority_update_(
-          GetQuicReloadableFlag(quic_ignore_old_priority_update_frame)),
       error_on_http3_push_(GetQuicReloadableFlag(quic_error_on_http3_push)) {
   QUICHE_DCHECK(visitor_);
-  if (ignore_old_priority_update_) {
-    QUIC_RELOADABLE_FLAG_COUNT(quic_ignore_old_priority_update_frame);
-  }
   if (error_on_http3_push_) {
     QUIC_RELOADABLE_FLAG_COUNT(quic_error_on_http3_push);
   }
@@ -287,15 +282,6 @@
       break;
     case static_cast<uint64_t>(HttpFrameType::MAX_PUSH_ID):
       break;
-    case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE):
-      if (ignore_old_priority_update_) {
-        continue_processing = visitor_->OnUnknownFrameStart(
-            current_frame_type_, header_length, current_frame_length_);
-      } else {
-        continue_processing =
-            visitor_->OnPriorityUpdateFrameStart(header_length);
-      }
-      break;
     case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE_REQUEST_STREAM):
       continue_processing = visitor_->OnPriorityUpdateFrameStart(header_length);
       break;
@@ -432,14 +418,6 @@
       continue_processing = BufferOrParsePayload(reader);
       break;
     }
-    case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE): {
-      if (ignore_old_priority_update_) {
-        continue_processing = HandleUnknownFramePayload(reader);
-      } else {
-        continue_processing = BufferOrParsePayload(reader);
-      }
-      break;
-    }
     case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE_REQUEST_STREAM): {
       continue_processing = BufferOrParsePayload(reader);
       break;
@@ -512,16 +490,6 @@
       continue_processing = BufferOrParsePayload(reader);
       break;
     }
-    case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE): {
-      if (ignore_old_priority_update_) {
-        continue_processing = visitor_->OnUnknownFrameEnd();
-      } else {
-        // If frame payload is not empty, FinishParsing() is skipped.
-        QUICHE_DCHECK_EQ(0u, current_frame_length_);
-        continue_processing = BufferOrParsePayload(reader);
-      }
-      break;
-    }
     case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE_REQUEST_STREAM): {
       // If frame payload is not empty, FinishParsing() is skipped.
       QUICHE_DCHECK_EQ(0u, current_frame_length_);
@@ -670,18 +638,6 @@
       }
       return visitor_->OnMaxPushIdFrame(frame);
     }
-    case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE): {
-      if (ignore_old_priority_update_) {
-        QUICHE_NOTREACHED();
-        return false;
-      } else {
-        PriorityUpdateFrame frame;
-        if (!ParsePriorityUpdateFrame(reader, &frame)) {
-          return false;
-        }
-        return visitor_->OnPriorityUpdateFrame(frame);
-      }
-    }
     case static_cast<uint64_t>(HttpFrameType::PRIORITY_UPDATE_REQUEST_STREAM): {
       PriorityUpdateFrame frame;
       if (!ParseNewPriorityUpdateFrame(reader, &frame)) {
diff --git a/quic/core/http/http_decoder.h b/quic/core/http/http_decoder.h
index 3a970fb..4d415b6 100644
--- a/quic/core/http/http_decoder.h
+++ b/quic/core/http/http_decoder.h
@@ -300,10 +300,6 @@
   std::array<char, sizeof(uint64_t)> push_id_buffer_;
 
   // Latched value of
-  // gfe2_reloadable_flag_quic_ignore_old_priority_update_frame.
-  const bool ignore_old_priority_update_;
-
-  // Latched value of
   // gfe2_reloadable_flag_quic_error_on_http3_push.
   const bool error_on_http3_push_;
 };
diff --git a/quic/core/http/http_decoder_test.cc b/quic/core/http/http_decoder_test.cc
index 3f7fb02..bae0dc0 100644
--- a/quic/core/http/http_decoder_test.cc
+++ b/quic/core/http/http_decoder_test.cc
@@ -1118,97 +1118,8 @@
   EXPECT_EQ("", decoder_.error_detail());
 }
 
-TEST_F(HttpDecoderTest, OldPriorityUpdateFrame) {
-  if (GetQuicReloadableFlag(quic_ignore_old_priority_update_frame)) {
-    return;
-  }
-
-  InSequence s;
-  std::string input1 = absl::HexStringToBytes(
-      "0f"    // type (PRIORITY_UPDATE)
-      "02"    // length
-      "00"    // prioritized element type: REQUEST_STREAM
-      "03");  // prioritized element id
-
-  PriorityUpdateFrame priority_update1;
-  priority_update1.prioritized_element_type = REQUEST_STREAM;
-  priority_update1.prioritized_element_id = 0x03;
-
-  // Visitor pauses processing.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2)).WillOnce(Return(false));
-  absl::string_view remaining_input(input1);
-  QuicByteCount processed_bytes =
-      ProcessInputWithGarbageAppended(remaining_input);
-  EXPECT_EQ(2u, processed_bytes);
-  remaining_input = remaining_input.substr(processed_bytes);
-
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update1))
-      .WillOnce(Return(false));
-  processed_bytes = ProcessInputWithGarbageAppended(remaining_input);
-  EXPECT_EQ(remaining_input.size(), processed_bytes);
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-
-  // Process the full frame.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2));
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update1));
-  EXPECT_EQ(input1.size(), ProcessInput(input1));
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-
-  // Process the frame incrementally.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2));
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update1));
-  ProcessInputCharByChar(input1);
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-
-  std::string input2 = absl::HexStringToBytes(
-      "0f"        // type (PRIORITY_UPDATE)
-      "05"        // length
-      "80"        // prioritized element type: PUSH_STREAM
-      "05"        // prioritized element id
-      "666f6f");  // priority field value: "foo"
-
-  PriorityUpdateFrame priority_update2;
-  priority_update2.prioritized_element_type = PUSH_STREAM;
-  priority_update2.prioritized_element_id = 0x05;
-  priority_update2.priority_field_value = "foo";
-
-  // Visitor pauses processing.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2)).WillOnce(Return(false));
-  remaining_input = input2;
-  processed_bytes = ProcessInputWithGarbageAppended(remaining_input);
-  EXPECT_EQ(2u, processed_bytes);
-  remaining_input = remaining_input.substr(processed_bytes);
-
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update2))
-      .WillOnce(Return(false));
-  processed_bytes = ProcessInputWithGarbageAppended(remaining_input);
-  EXPECT_EQ(remaining_input.size(), processed_bytes);
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-
-  // Process the full frame.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2));
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update2));
-  EXPECT_EQ(input2.size(), ProcessInput(input2));
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-
-  // Process the frame incrementally.
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(2));
-  EXPECT_CALL(visitor_, OnPriorityUpdateFrame(priority_update2));
-  ProcessInputCharByChar(input2);
-  EXPECT_THAT(decoder_.error(), IsQuicNoError());
-  EXPECT_EQ("", decoder_.error_detail());
-}
-
+// Old PRIORITY_UPDATE frame is parsed as unknown frame.
 TEST_F(HttpDecoderTest, ObsoletePriorityUpdateFrame) {
-  if (!GetQuicReloadableFlag(quic_ignore_old_priority_update_frame)) {
-    return;
-  }
-
   const QuicByteCount header_length = 2;
   const QuicByteCount payload_length = 3;
   InSequence s;
@@ -1322,46 +1233,6 @@
 }
 
 TEST_F(HttpDecoderTest, CorruptPriorityUpdateFrame) {
-  if (GetQuicReloadableFlag(quic_ignore_old_priority_update_frame)) {
-    return;
-  }
-
-  std::string payload1 = absl::HexStringToBytes(
-      "80"      // prioritized element type: PUSH_STREAM
-      "4005");  // prioritized element id
-  std::string payload2 =
-      absl::HexStringToBytes("42");  // invalid prioritized element type
-  struct {
-    const char* const payload;
-    size_t payload_length;
-    const char* const error_message;
-  } kTestData[] = {
-      {payload1.data(), 0, "Unable to read prioritized element type."},
-      {payload1.data(), 1, "Unable to read prioritized element id."},
-      {payload1.data(), 2, "Unable to read prioritized element id."},
-      {payload2.data(), 1, "Invalid prioritized element type."},
-  };
-
-  for (const auto& test_data : kTestData) {
-    std::string input;
-    input.push_back(15u);  // type PRIORITY_UPDATE
-    input.push_back(test_data.payload_length);
-    size_t header_length = input.size();
-    input.append(test_data.payload, test_data.payload_length);
-
-    HttpDecoder decoder(&visitor_);
-    EXPECT_CALL(visitor_, OnPriorityUpdateFrameStart(header_length));
-    EXPECT_CALL(visitor_, OnError(&decoder));
-
-    QuicByteCount processed_bytes =
-        decoder.ProcessInput(input.data(), input.size());
-    EXPECT_EQ(input.size(), processed_bytes);
-    EXPECT_THAT(decoder.error(), IsError(QUIC_HTTP_FRAME_ERROR));
-    EXPECT_EQ(test_data.error_message, decoder.error_detail());
-  }
-}
-
-TEST_F(HttpDecoderTest, CorruptNewPriorityUpdateFrame) {
   std::string payload =
       absl::HexStringToBytes("4005");  // prioritized element id
   struct {
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index 02e19b4..40dd86b 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -99,8 +99,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_donot_reset_ideal_next_packet_send_time, false)
 // If true, time_wait_list can support multiple connection IDs.
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_time_wait_list_support_multiple_cid_v2, true)
-// If true, treat old (pre-draft02) PRIORITY_UPDATE frame as unknown frame.
-QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_ignore_old_priority_update_frame, true)
 // If true, upon receiving path challenge, send path response and reverse path challenge in the same function.
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_group_path_response_and_challenge_sending_closer, true)
 // If true, use BBRv2 as the default congestion controller. Takes precedence over --quic_default_to_bbr.