Deprecate --gfe2_restart_flag_http2_parse_priority_update_frame.

PiperOrigin-RevId: 360234035
Change-Id: I1ce9538d2ae9b660bd39de7c2b5988082916da9b
diff --git a/http2/decoder/http2_frame_decoder.cc b/http2/decoder/http2_frame_decoder.cc
index 449d649..9509c0c 100644
--- a/http2/decoder/http2_frame_decoder.cc
+++ b/http2/decoder/http2_frame_decoder.cc
@@ -158,12 +158,7 @@
       break;
 
     case Http2FrameType::PRIORITY_UPDATE:
-      if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-        HTTP2_RESTART_FLAG_COUNT_N(http2_parse_priority_update_frame, 1, 2);
-        status = StartDecodingPriorityUpdatePayload(&subset);
-      } else {
-        status = StartDecodingUnknownPayload(&subset);
-      }
+      status = StartDecodingPriorityUpdatePayload(&subset);
       break;
 
     default:
@@ -237,12 +232,7 @@
       break;
 
     case Http2FrameType::PRIORITY_UPDATE:
-      if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-        HTTP2_RESTART_FLAG_COUNT_N(http2_parse_priority_update_frame, 2, 2);
-        status = ResumeDecodingPriorityUpdatePayload(&subset);
-      } else {
-        status = ResumeDecodingUnknownPayload(&subset);
-      }
+      status = ResumeDecodingPriorityUpdatePayload(&subset);
       break;
 
     default:
diff --git a/http2/decoder/http2_frame_decoder_test.cc b/http2/decoder/http2_frame_decoder_test.cc
index 0b0b415..b09a5d0 100644
--- a/http2/decoder/http2_frame_decoder_test.cc
+++ b/http2/decoder/http2_frame_decoder_test.cc
@@ -558,16 +558,9 @@
   };
   Http2FrameHeader header(7, Http2FrameType::PRIORITY_UPDATE, 0, 0);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    FrameParts expected(header, "abc");
-    expected.SetOptPriorityUpdate(Http2PriorityUpdateFields{5});
-    EXPECT_TRUE(DecodePayloadAndValidateSeveralWays(kFrameData, expected));
-  } else {
-    FrameParts expected(header, absl::string_view("\x00\x00\x00\x05"
-                                                  "abc",
-                                                  7));
-    EXPECT_TRUE(DecodePayloadAndValidateSeveralWays(kFrameData, expected));
-  }
+  FrameParts expected(header, "abc");
+  expected.SetOptPriorityUpdate(Http2PriorityUpdateFields{5});
+  EXPECT_TRUE(DecodePayloadAndValidateSeveralWays(kFrameData, expected));
 }
 
 TEST_F(Http2FrameDecoderTest, UnknownPayload) {
diff --git a/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc b/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc
index 39d0afc..41b7dc8 100644
--- a/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc
+++ b/http2/decoder/payload_decoders/priority_update_payload_decoder_test.cc
@@ -61,31 +61,14 @@
   }
 };
 
-// Avoid initialization of test class when flag is false, because base class
-// method AbstractPayloadDecoderTest::SetUp() crashes if
-// IsSupportedHttp2FrameType(PRIORITY_UPDATE) returns false.
-std::vector<bool> GetTestParams() {
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    return {true};  // Actual Boolean value is ignored.
-  } else {
-    return {};
-  }
-}
-
 class PriorityUpdatePayloadDecoderTest
     : public AbstractPayloadDecoderTest<PriorityUpdatePayloadDecoder,
                                         PriorityUpdatePayloadDecoderPeer,
-                                        Listener>,
-      public ::testing::WithParamInterface<bool> {};
-
-INSTANTIATE_TEST_SUITE_P(MaybeRunTest,
-                         PriorityUpdatePayloadDecoderTest,
-                         ::testing::ValuesIn(GetTestParams()));
-GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(PriorityUpdatePayloadDecoderTest);
+                                        Listener> {};
 
 // Confirm we get an error if the payload is not long enough to hold
 // Http2PriorityUpdateFields.
-TEST_P(PriorityUpdatePayloadDecoderTest, Truncated) {
+TEST_F(PriorityUpdatePayloadDecoderTest, Truncated) {
   auto approve_size = [](size_t size) {
     return size != Http2PriorityUpdateFields::EncodedSize();
   };
@@ -98,9 +81,9 @@
     : public AbstractPayloadDecoderTest<PriorityUpdatePayloadDecoder,
                                         PriorityUpdatePayloadDecoderPeer,
                                         Listener>,
-      public ::testing::WithParamInterface<std::tuple<uint32_t, bool>> {
+      public ::testing::WithParamInterface<uint32_t> {
  protected:
-  PriorityUpdatePayloadLengthTests() : length_(std::get<0>(GetParam())) {
+  PriorityUpdatePayloadLengthTests() : length_(GetParam()) {
     HTTP2_VLOG(1) << "################  length_=" << length_
                   << "  ################";
   }
@@ -108,12 +91,9 @@
   const uint32_t length_;
 };
 
-INSTANTIATE_TEST_SUITE_P(
-    VariousLengths,
-    PriorityUpdatePayloadLengthTests,
-    ::testing::Combine(::testing::Values(0, 1, 2, 3, 4, 5, 6),
-                       ::testing::ValuesIn(GetTestParams())));
-GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(PriorityUpdatePayloadLengthTests);
+INSTANTIATE_TEST_SUITE_P(VariousLengths,
+                         PriorityUpdatePayloadLengthTests,
+                         ::testing::Values(0, 1, 2, 3, 4, 5, 6));
 
 TEST_P(PriorityUpdatePayloadLengthTests, ValidLength) {
   Http2PriorityUpdateFields priority_update;
diff --git a/http2/http2_constants.h b/http2/http2_constants.h
index cd05eb4..65e55db 100644
--- a/http2/http2_constants.h
+++ b/http2/http2_constants.h
@@ -48,12 +48,8 @@
 
 // Is the frame type known/supported?
 inline bool IsSupportedHttp2FrameType(uint32_t v) {
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame) &&
-      v == static_cast<uint32_t>(Http2FrameType::PRIORITY_UPDATE)) {
-    return true;
-  }
-
-  return v <= static_cast<uint32_t>(Http2FrameType::ALTSVC);
+  return v <= static_cast<uint32_t>(Http2FrameType::ALTSVC) ||
+         v == static_cast<uint32_t>(Http2FrameType::PRIORITY_UPDATE);
 }
 inline bool IsSupportedHttp2FrameType(Http2FrameType v) {
   return IsSupportedHttp2FrameType(static_cast<uint32_t>(v));
diff --git a/quic/core/quic_flags_list.h b/quic/core/quic_flags_list.h
index f37ccbc..aa5f569 100644
--- a/quic/core/quic_flags_list.h
+++ b/quic/core/quic_flags_list.h
@@ -67,7 +67,6 @@
 QUIC_FLAG(FLAGS_quic_reloadable_flag_quic_use_write_or_buffer_data_at_level, false)
 QUIC_FLAG(FLAGS_quic_reloadable_flag_send_quic_fallback_server_config_on_leto_error, false)
 QUIC_FLAG(FLAGS_quic_restart_flag_dont_fetch_quic_private_keys_from_leto, false)
-QUIC_FLAG(FLAGS_quic_restart_flag_http2_parse_priority_update_frame, true)
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_dispatcher_support_multiple_cid_per_connection_v2, true)
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_enable_zero_rtt_for_tls_v2, true)
 QUIC_FLAG(FLAGS_quic_restart_flag_quic_offload_pacing_to_usps2, false)
diff --git a/spdy/core/spdy_framer_test.cc b/spdy/core/spdy_framer_test.cc
index 96b9f4c..d7fb6a7 100644
--- a/spdy/core/spdy_framer_test.cc
+++ b/spdy/core/spdy_framer_test.cc
@@ -4570,12 +4570,7 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(visitor, OnPriorityUpdate(3, "foo"));
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(0, _)).WillOnce(testing::Return(true));
-  }
-
+  EXPECT_CALL(visitor, OnPriorityUpdate(3, "foo"));
   deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
   EXPECT_FALSE(deframer_.HasError());
 }
@@ -4592,12 +4587,7 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(visitor, OnPriorityUpdate(3, ""));
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(0, _)).WillOnce(testing::Return(true));
-  }
-
+  EXPECT_CALL(visitor, OnPriorityUpdate(3, ""));
   deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
   EXPECT_FALSE(deframer_.HasError());
 }
@@ -4613,17 +4603,10 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(
-        visitor,
-        OnError(Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE, _));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_TRUE(deframer_.HasError());
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(0, _)).WillOnce(testing::Return(true));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_FALSE(deframer_.HasError());
-  }
+  EXPECT_CALL(visitor,
+              OnError(Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE, _));
+  deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
+  EXPECT_TRUE(deframer_.HasError());
 }
 
 TEST_P(SpdyFramerTest, PriorityUpdateFrameWithShortPayload) {
@@ -4639,17 +4622,10 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(
-        visitor,
-        OnError(Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE, _));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_TRUE(deframer_.HasError());
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(0, _)).WillOnce(testing::Return(true));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_FALSE(deframer_.HasError());
-  }
+  EXPECT_CALL(visitor,
+              OnError(Http2DecoderAdapter::SPDY_INVALID_CONTROL_FRAME_SIZE, _));
+  deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
+  EXPECT_TRUE(deframer_.HasError());
 }
 
 TEST_P(SpdyFramerTest, PriorityUpdateFrameOnIncorrectStream) {
@@ -4664,16 +4640,9 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(visitor,
-                OnError(Http2DecoderAdapter::SPDY_INVALID_STREAM_ID, _));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_TRUE(deframer_.HasError());
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(1, _)).WillOnce(testing::Return(true));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_FALSE(deframer_.HasError());
-  }
+  EXPECT_CALL(visitor, OnError(Http2DecoderAdapter::SPDY_INVALID_STREAM_ID, _));
+  deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
+  EXPECT_TRUE(deframer_.HasError());
 }
 
 TEST_P(SpdyFramerTest, PriorityUpdateFramePrioritizingIncorrectStream) {
@@ -4688,16 +4657,9 @@
   testing::StrictMock<test::MockSpdyFramerVisitor> visitor;
   deframer_.set_visitor(&visitor);
 
-  if (GetHttp2RestartFlag(http2_parse_priority_update_frame)) {
-    EXPECT_CALL(visitor,
-                OnError(Http2DecoderAdapter::SPDY_INVALID_STREAM_ID, _));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_TRUE(deframer_.HasError());
-  } else {
-    EXPECT_CALL(visitor, OnUnknownFrame(0, _)).WillOnce(testing::Return(true));
-    deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
-    EXPECT_FALSE(deframer_.HasError());
-  }
+  EXPECT_CALL(visitor, OnError(Http2DecoderAdapter::SPDY_INVALID_STREAM_ID, _));
+  deframer_.ProcessInput(kFrameData, sizeof(kFrameData));
+  EXPECT_TRUE(deframer_.HasError());
 }
 
 // Tests handling of PRIORITY frames.