Consolidate OnStreamHeadersPriority and OnPriorityFrame into OnStreamPriority.

Both methods performed identical logic when receiving priority via HEADERS or a PRIORITY frame.

PiperOrigin-RevId: 1006112686
diff --git a/quiche/quic/core/http/quic_headers_stream_test.cc b/quiche/quic/core/http/quic_headers_stream_test.cc
index cd413bc..c3b5bf9 100644
--- a/quiche/quic/core/http/quic_headers_stream_test.cc
+++ b/quiche/quic/core/http/quic_headers_stream_test.cc
@@ -410,7 +410,7 @@
           headers_frame.set_has_priority(true);
           headers_frame.set_weight(Spdy3PriorityToHttp2Weight(0));
           frame = framer_->SerializeFrame(headers_frame);
-          EXPECT_CALL(session_, OnStreamHeadersPriority(
+          EXPECT_CALL(session_, OnStreamPriority(
                                     stream_id, spdy::SpdyStreamPrecedence(0)));
         } else {
           SpdyHeadersIR headers_frame(stream_id, headers_.Clone());
@@ -471,7 +471,7 @@
       } else {
         EXPECT_CALL(
             session_,
-            OnPriorityFrame(stream_id, spdy::SpdyStreamPrecedence(priority)))
+            OnStreamPriority(stream_id, spdy::SpdyStreamPrecedence(priority)))
             .Times(1);
       }
       stream_frame_.data_buffer = frame.data();
@@ -520,7 +520,7 @@
           headers_frame.set_has_priority(true);
           headers_frame.set_weight(Spdy3PriorityToHttp2Weight(0));
           frame = framer_->SerializeFrame(headers_frame);
-          EXPECT_CALL(session_, OnStreamHeadersPriority(
+          EXPECT_CALL(session_, OnStreamPriority(
                                     stream_id, spdy::SpdyStreamPrecedence(0)));
         } else {
           SpdyHeadersIR headers_frame(stream_id, headers_.Clone());
diff --git a/quiche/quic/core/http/quic_spdy_session.cc b/quiche/quic/core/http/quic_spdy_session.cc
index 2ad8837..4f9ed30 100644
--- a/quiche/quic/core/http/quic_spdy_session.cc
+++ b/quiche/quic/core/http/quic_spdy_session.cc
@@ -675,14 +675,15 @@
       error_code, absl::StrCat("Encoder stream error: ", error_message));
 }
 
-void QuicSpdySession::OnStreamHeadersPriority(
+void QuicSpdySession::OnStreamPriority(
     QuicStreamId stream_id, const spdy::SpdyStreamPrecedence& precedence) {
   QuicSpdyStream* stream = GetOrCreateSpdyDataStream(stream_id);
   if (!stream) {
-    // It's quite possible to receive headers after a stream has been reset.
+    // It's quite possible to receive headers or a PRIORITY frame after a stream
+    // has been reset.
     return;
   }
-  stream->OnStreamHeadersPriority(precedence);
+  stream->OnStreamPriority(precedence);
 }
 
 void QuicSpdySession::OnStreamHeaderList(QuicStreamId stream_id, bool fin,
@@ -723,17 +724,6 @@
   stream->OnStreamHeaderList(fin, frame_len, header_list);
 }
 
-void QuicSpdySession::OnPriorityFrame(
-    QuicStreamId stream_id, const spdy::SpdyStreamPrecedence& precedence) {
-  QuicSpdyStream* stream = GetOrCreateSpdyDataStream(stream_id);
-  if (!stream) {
-    // It's quite possible to receive a PRIORITY frame after a stream has been
-    // reset.
-    return;
-  }
-  stream->OnPriorityFrame(precedence);
-}
-
 bool QuicSpdySession::OnPriorityUpdateForRequestStream(
     QuicStreamId stream_id, HttpStreamPriority priority) {
   // TODO: Close the connection if the client receives a PRIORITY_UPDATE or
@@ -1468,7 +1458,7 @@
                                  "Server must not send priorities.");
       return;
     }
-    OnStreamHeadersPriority(stream_id, precedence);
+    OnStreamPriority(stream_id, precedence);
   } else {
     if (perspective() == Perspective::IS_SERVER) {
       CloseConnectionWithDetails(QUIC_INVALID_HEADERS_STREAM_DATA,
@@ -1491,7 +1481,7 @@
                                "Server must not send PRIORITY frames.");
     return;
   }
-  OnPriorityFrame(stream_id, precedence);
+  OnStreamPriority(stream_id, precedence);
 }
 
 void QuicSpdySession::OnHeaderList(const QuicHeaderList& header_list) {
diff --git a/quiche/quic/core/http/quic_spdy_session.h b/quiche/quic/core/http/quic_spdy_session.h
index 5e96a4d..a38d976 100644
--- a/quiche/quic/core/http/quic_spdy_session.h
+++ b/quiche/quic/core/http/quic_spdy_session.h
@@ -184,10 +184,11 @@
   void OnEncoderStreamError(QuicErrorCode error_code,
                             absl::string_view error_message) override;
 
-  // Called by |headers_stream_| when headers with a priority have been
-  // received for a stream.  This method will only be called for server streams.
-  virtual void OnStreamHeadersPriority(
-      QuicStreamId stream_id, const spdy::SpdyStreamPrecedence& precedence);
+  // Called by |headers_stream_| when headers with a priority or a PRIORITY
+  // frame have been received for a stream. This method will only be called for
+  // server streams.
+  virtual void OnStreamPriority(QuicStreamId stream_id,
+                                const spdy::SpdyStreamPrecedence& precedence);
 
   // Called by |headers_stream_| when headers have been completely received
   // for a stream.  |fin| will be true if the fin flag was set in the headers
@@ -196,11 +197,6 @@
                                   size_t frame_len,
                                   const QuicHeaderList& header_list);
 
-  // Called by |headers_stream_| when a PRIORITY frame has been received for a
-  // stream. This method will only be called for server streams.
-  virtual void OnPriorityFrame(QuicStreamId stream_id,
-                               const spdy::SpdyStreamPrecedence& precedence);
-
   // Called when an HTTP/3 PRIORITY_UPDATE frame has been received for a request
   // stream.  Returns false and closes connection if |stream_id| is invalid.
   bool OnPriorityUpdateForRequestStream(QuicStreamId stream_id,
diff --git a/quiche/quic/core/http/quic_spdy_session_test.cc b/quiche/quic/core/http/quic_spdy_session_test.cc
index 63a6633..8958d41 100644
--- a/quiche/quic/core/http/quic_spdy_session_test.cc
+++ b/quiche/quic/core/http/quic_spdy_session_test.cc
@@ -2302,12 +2302,12 @@
   session_->RetransmitFrames(frames, PTO_RETRANSMISSION);
 }
 
-TEST_P(QuicSpdySessionTestServer, OnPriorityFrame) {
+TEST_P(QuicSpdySessionTestServer, OnStreamPriority) {
   Initialize();
   QuicStreamId stream_id = GetNthClientInitiatedBidirectionalId(0);
   TestStream* stream = session_->CreateIncomingStream(stream_id);
-  session_->OnPriorityFrame(stream_id,
-                            spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  session_->OnStreamPriority(stream_id,
+                             spdy::SpdyStreamPrecedence(kV3HighestPriority));
 
   EXPECT_EQ((QuicStreamPriority(HttpStreamPriority{
                 kV3HighestPriority, HttpStreamPriority::kDefaultIncremental})),
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index e1c99fa..d57236f 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -543,7 +543,7 @@
   }
 }
 
-void QuicSpdyStream::OnStreamHeadersPriority(
+void QuicSpdyStream::OnStreamPriority(
     const spdy::SpdyStreamPrecedence& precedence) {
   QUICHE_DCHECK_EQ(Perspective::IS_SERVER,
                    session()->connection()->perspective());
@@ -753,14 +753,6 @@
   metadata_visitor_ = nullptr;
 }
 
-void QuicSpdyStream::OnPriorityFrame(
-    const spdy::SpdyStreamPrecedence& precedence) {
-  QUICHE_DCHECK_EQ(Perspective::IS_SERVER,
-                   session()->connection()->perspective());
-  SetPriority(QuicStreamPriority(HttpStreamPriority{
-      precedence.spdy3_priority(), HttpStreamPriority::kDefaultIncremental}));
-}
-
 void QuicSpdyStream::OnStreamReset(const QuicRstStreamFrame& frame) {
   if (web_transport_data_ != nullptr) {
     WebTransportStreamVisitor* webtransport_visitor =
diff --git a/quiche/quic/core/http/quic_spdy_stream.h b/quiche/quic/core/http/quic_spdy_stream.h
index b2b7543..02f6f50 100644
--- a/quiche/quic/core/http/quic_spdy_stream.h
+++ b/quiche/quic/core/http/quic_spdy_stream.h
@@ -133,10 +133,10 @@
   // Override to maybe close the write side after writing.
   void OnCanWrite() override;
 
-  // Called by the session when headers with a priority have been received
-  // for this stream.  This method will only be called for server streams.
-  virtual void OnStreamHeadersPriority(
-      const spdy::SpdyStreamPrecedence& precedence);
+  // Called by the session when headers with a priority or a PRIORITY frame have
+  // been received for this stream. This method will only be called for server
+  // streams.
+  void OnStreamPriority(const spdy::SpdyStreamPrecedence& precedence);
 
   // Called by the session when decompressed headers have been completely
   // delivered to this stream.  If |fin| is true, then this stream
@@ -144,10 +144,6 @@
   virtual void OnStreamHeaderList(bool fin, size_t frame_len,
                                   const QuicHeaderList& header_list);
 
-  // Called by the session when a PRIORITY frame has been been received for this
-  // stream. This method will only be called for server streams.
-  void OnPriorityFrame(const spdy::SpdyStreamPrecedence& precedence);
-
   // Override the base class to not discard response when receiving
   // QUIC_STREAM_NO_ERROR.
   void OnStreamReset(const QuicRstStreamFrame& frame) override;
diff --git a/quiche/quic/core/http/quic_spdy_stream_test.cc b/quiche/quic/core/http/quic_spdy_stream_test.cc
index 7acbc55..048340e 100644
--- a/quiche/quic/core/http/quic_spdy_stream_test.cc
+++ b/quiche/quic/core/http/quic_spdy_stream_test.cc
@@ -572,8 +572,7 @@
 TEST_P(QuicSpdyStreamTest, ProcessHeaderList) {
   Initialize(kShouldProcessData);
 
-  stream_->OnStreamHeadersPriority(
-      spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   ProcessHeaders(false, headers_);
   EXPECT_EQ("", stream_->data());
   EXPECT_FALSE(stream_->header_list().empty());
@@ -585,8 +584,7 @@
 
   if (!IsIetfQuic()) {
     QuicHeaderList headers;
-    stream_->OnStreamHeadersPriority(
-        spdy::SpdyStreamPrecedence(kV3HighestPriority));
+    stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
 
     EXPECT_CALL(
         *session_,
@@ -646,8 +644,7 @@
     headers.OnHeader(p.first, p.second);
     total_bytes += p.first.size() + p.second.size();
   }
-  stream_->OnStreamHeadersPriority(
-      spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   stream_->OnStreamHeaderList(true, total_bytes, headers);
   EXPECT_EQ("", stream_->data());
   EXPECT_FALSE(stream_->header_list().empty());
@@ -1298,8 +1295,7 @@
     total_bytes += p.first.size() + p.second.size();
   }
 
-  stream_->OnStreamHeadersPriority(
-      spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   stream_->OnStreamHeaderList(/*fin=*/false, total_bytes, headers);
   stream_->ConsumeHeaderList();
 
@@ -1819,15 +1815,15 @@
                                      /*is_retransmission=*/false));
 }
 
-TEST_P(QuicSpdyStreamTest, OnPriorityFrame) {
+TEST_P(QuicSpdyStreamTest, OnStreamPriority) {
   Initialize(kShouldProcessData);
-  stream_->OnPriorityFrame(spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   EXPECT_EQ(QuicStreamPriority(HttpStreamPriority{
                 kV3HighestPriority, HttpStreamPriority::kDefaultIncremental}),
             stream_->priority());
 }
 
-TEST_P(QuicSpdyStreamTest, OnPriorityFrameAfterSendingData) {
+TEST_P(QuicSpdyStreamTest, OnStreamPriorityAfterSendingData) {
   Initialize(kShouldProcessData);
   testing::InSequence seq;
 
@@ -1836,7 +1832,7 @@
   }
   EXPECT_CALL(*session_, WritevData(_, 4, _, FIN, _, _));
   stream_->WriteOrBufferBody("data", true);
-  stream_->OnPriorityFrame(spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   EXPECT_EQ(QuicStreamPriority(HttpStreamPriority{
                 kV3HighestPriority, HttpStreamPriority::kDefaultIncremental}),
             stream_->priority());
@@ -3474,8 +3470,7 @@
   headers_[":protocol"] = "webtransport";
   headers_["wt-available-protocols"] = R"("moqt-00", "moqt-01"; a=b)";
 
-  stream_->OnStreamHeadersPriority(
-      spdy::SpdyStreamPrecedence(kV3HighestPriority));
+  stream_->OnStreamPriority(spdy::SpdyStreamPrecedence(kV3HighestPriority));
   ProcessHeaders(false, headers_);
   EXPECT_EQ("", stream_->data());
   EXPECT_FALSE(stream_->header_list().empty());
diff --git a/quiche/quic/test_tools/quic_test_utils.h b/quiche/quic/test_tools/quic_test_utils.h
index 6ba7cac..3dd42f8 100644
--- a/quiche/quic/test_tools/quic_test_utils.h
+++ b/quiche/quic/test_tools/quic_test_utils.h
@@ -996,7 +996,7 @@
               (QuicStreamId id, QuicStreamOffset byte_offset), (override));
   MOCK_METHOD(void, SendBlocked,
               (QuicStreamId id, QuicStreamOffset byte_offset), (override));
-  MOCK_METHOD(void, OnStreamHeadersPriority,
+  MOCK_METHOD(void, OnStreamPriority,
               (QuicStreamId stream_id,
                const spdy::SpdyStreamPrecedence& precedence),
               (override));
@@ -1004,9 +1004,6 @@
               (QuicStreamId stream_id, bool fin, size_t frame_len,
                const QuicHeaderList& header_list),
               (override));
-  MOCK_METHOD(void, OnPriorityFrame,
-              (QuicStreamId id, const spdy::SpdyStreamPrecedence& precedence),
-              (override));
   MOCK_METHOD(void, OnCongestionWindowChange, (QuicTime now), (override));
 
   // Returns a QuicConsumedData that indicates all of |write_length| (and |fin|
diff --git a/quiche/quic/tools/quic_simple_server_stream_test.cc b/quiche/quic/tools/quic_simple_server_stream_test.cc
index 531126d..d4187ff 100644
--- a/quiche/quic/tools/quic_simple_server_stream_test.cc
+++ b/quiche/quic/tools/quic_simple_server_stream_test.cc
@@ -176,7 +176,7 @@
               (QuicStreamId stream_id, bool fin, size_t frame_len,
                const QuicHeaderList& header_list),
               (override));
-  MOCK_METHOD(void, OnStreamHeadersPriority,
+  MOCK_METHOD(void, OnStreamPriority,
               (QuicStreamId stream_id,
                const spdy::SpdyStreamPrecedence& precedence),
               (override));