Add SpdyFramerVisitorInterface::OnPriorityUpdate().
This method is not yet used. It will be called from Http2FrameDecoder in the
next CL.
PiperOrigin-RevId: 348086749
Change-Id: Ie76e161b77fc16222461270a775d827d6e660c9a
diff --git a/quic/core/http/quic_headers_stream_test.cc b/quic/core/http/quic_headers_stream_test.cc
index dc6a46d..cd8120d 100644
--- a/quic/core/http/quic_headers_stream_test.cc
+++ b/quic/core/http/quic_headers_stream_test.cc
@@ -162,6 +162,11 @@
int weight,
bool exclusive),
(override));
+ MOCK_METHOD(void,
+ OnPriorityUpdate,
+ (SpdyStreamId prioritized_stream_id,
+ absl::string_view priority_field_value),
+ (override));
MOCK_METHOD(bool,
OnUnknownFrame,
(SpdyStreamId stream_id, uint8_t frame_type),
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index a86aefa..28da458 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -315,6 +315,12 @@
session_->OnPriority(stream_id, spdy::SpdyStreamPrecedence(priority));
}
+ void OnPriorityUpdate(SpdyStreamId /*prioritized_stream_id*/,
+ absl::string_view /*priority_field_value*/) override {
+ // TODO(b/171470299): Parse and call
+ // QuicSpdySession::OnPriorityUpdateForRequestStream().
+ }
+
bool OnUnknownFrame(SpdyStreamId /*stream_id*/,
uint8_t /*frame_type*/) override {
CloseConnection("Unknown frame type received.",
diff --git a/spdy/core/http2_frame_decoder_adapter.h b/spdy/core/http2_frame_decoder_adapter.h
index 89d7fdc..2058de4 100644
--- a/spdy/core/http2_frame_decoder_adapter.h
+++ b/spdy/core/http2_frame_decoder_adapter.h
@@ -509,6 +509,13 @@
int weight,
bool exclusive) = 0;
+ // Called when a PRIORITY_UPDATE frame is received on stream 0.
+ // |prioritized_stream_id| is the Prioritized Stream ID and
+ // |priority_field_value| is the Priority Field Value
+ // parsed from the frame payload.
+ virtual void OnPriorityUpdate(SpdyStreamId prioritized_stream_id,
+ absl::string_view priority_field_value) = 0;
+
// Called when a frame type we don't recognize is received.
// Return true if this appears to be a valid extension frame, false otherwise.
// We distinguish between extension frames and nonsense by checking
diff --git a/spdy/core/mock_spdy_framer_visitor.h b/spdy/core/mock_spdy_framer_visitor.h
index 5faf2fb..8732f70 100644
--- a/spdy/core/mock_spdy_framer_visitor.h
+++ b/spdy/core/mock_spdy_framer_visitor.h
@@ -101,6 +101,11 @@
int weight,
bool exclusive),
(override));
+ MOCK_METHOD(void,
+ OnPriorityUpdate,
+ (SpdyStreamId prioritized_stream_id,
+ absl::string_view priority_field_value),
+ (override));
MOCK_METHOD(bool,
OnUnknownFrame,
(SpdyStreamId stream_id, uint8_t frame_type),
diff --git a/spdy/core/spdy_framer_test.cc b/spdy/core/spdy_framer_test.cc
index a1d7a79..da23f11 100644
--- a/spdy/core/spdy_framer_test.cc
+++ b/spdy/core/spdy_framer_test.cc
@@ -428,6 +428,12 @@
++priority_count_;
}
+ void OnPriorityUpdate(SpdyStreamId prioritized_stream_id,
+ absl::string_view priority_field_value) override {
+ SPDY_VLOG(1) << "OnPriorityUpdate(" << prioritized_stream_id << ", "
+ << priority_field_value << ")";
+ }
+
bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) override {
SPDY_VLOG(1) << "OnUnknownFrame(" << stream_id << ", " << frame_type << ")";
return on_unknown_frame_result_;
diff --git a/spdy/core/spdy_no_op_visitor.h b/spdy/core/spdy_no_op_visitor.h
index 26bab9c..da272b3 100644
--- a/spdy/core/spdy_no_op_visitor.h
+++ b/spdy/core/spdy_no_op_visitor.h
@@ -68,6 +68,8 @@
SpdyStreamId /*parent_stream_id*/,
int /*weight*/,
bool /*exclusive*/) override {}
+ void OnPriorityUpdate(SpdyStreamId /*prioritized_stream_id*/,
+ absl::string_view /*priority_field_value*/) override {}
bool OnUnknownFrame(SpdyStreamId /*stream_id*/,
uint8_t /*frame_type*/) override;