Implement PRIORITY_UPDATE frame in HttpEncoder and HttpDecoder.
gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 289120155
Change-Id: I85525c7fef4cccd7ecef9e1e24a704c656895f75
diff --git a/quic/core/http/http_decoder.h b/quic/core/http/http_decoder.h
index a77ce6c..426a86e 100644
--- a/quic/core/http/http_decoder.h
+++ b/quic/core/http/http_decoder.h
@@ -92,6 +92,13 @@
// Called when a PUSH_PROMISE frame has been completely processed.
virtual bool OnPushPromiseFrameEnd() = 0;
+ // Called when a PRIORITY_UPDATE frame has been received.
+ // |header_length| contains PRIORITY_UPDATE frame length and payload length.
+ virtual bool OnPriorityUpdateFrameStart(QuicByteCount header_length) = 0;
+
+ // Called when a PRIORITY_UPDATE frame has been successfully parsed.
+ virtual bool OnPriorityUpdateFrame(const PriorityUpdateFrame& frame) = 0;
+
// Called when a frame of unknown type |frame_type| has been received.
// Frame type might be reserved, Visitor must make sure to ignore.
// |header_length| contains frame length and payload length.
@@ -177,6 +184,10 @@
// Parses the payload of a SETTINGS frame from |reader| into |frame|.
bool ParseSettingsFrame(QuicDataReader* reader, SettingsFrame* frame);
+ // Parses the payload of a PRIORITY_UPDATE frame from |reader| into |frame|.
+ bool ParsePriorityUpdateFrame(QuicDataReader* reader,
+ PriorityUpdateFrame* frame);
+
// Returns the max frame size of a given |frame_type|.
QuicByteCount MaxFrameLength(uint64_t frame_type);