Write PRIORITY_UPDATE frame.
gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 289127305
Change-Id: Ic515e3159362430055178010ee1c45e1a8e2c604
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index 819caef..195f92b 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -1037,7 +1037,16 @@
std::move(ack_listener));
}
- // TODO(b/147306124): Send PRIORITY_UPDATE frame.
+ if (!priority_sent_) {
+ PriorityUpdateFrame priority_update;
+ priority_update.prioritized_element_type = REQUEST_STREAM;
+ priority_update.prioritized_element_id = id();
+ // Value between 0 and 7, inclusive. Lower value means higher priority.
+ int urgency = precedence().spdy3_priority();
+ priority_update.priority_field_value = quiche::QuicheStrCat("u=", urgency);
+ spdy_session_->WriteHttp3PriorityUpdate(priority_update);
+ priority_sent_ = true;
+ }
// Encode header list.
QuicByteCount encoder_stream_sent_byte_count;