Do not send PRIORITY_UPDATE frame if it does not change priority. gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99. PiperOrigin-RevId: 292388791 Change-Id: I8e146591be22f57026f89231f847080299506ef6
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc index d69299e..b393ee3 100644 --- a/quic/core/http/quic_spdy_stream.cc +++ b/quic/core/http/quic_spdy_stream.cc
@@ -202,7 +202,8 @@ decoder_(http_decoder_visitor_.get()), sequencer_offset_(0), is_decoder_processing_input_(false), - ack_listener_(nullptr) { + ack_listener_(nullptr), + last_sent_urgency_(kDefaultUrgency) { DCHECK_EQ(session()->connection(), spdy_session->connection()); DCHECK_EQ(transport_version(), spdy_session->transport_version()); DCHECK(!QuicUtils::IsCryptoStreamId(transport_version(), id)); @@ -238,7 +239,8 @@ decoder_(http_decoder_visitor_.get()), sequencer_offset_(sequencer()->NumBytesConsumed()), is_decoder_processing_input_(false), - ack_listener_(nullptr) { + ack_listener_(nullptr), + last_sent_urgency_(kDefaultUrgency) { DCHECK_EQ(session()->connection(), spdy_session->connection()); DCHECK_EQ(transport_version(), spdy_session->transport_version()); DCHECK(!QuicUtils::IsCryptoStreamId(transport_version(), id())); @@ -591,6 +593,10 @@ // Value between 0 and 7, inclusive. Lower value means higher priority. int urgency = precedence().spdy3_priority(); + if (last_sent_urgency_ == urgency) { + return; + } + last_sent_urgency_ = urgency; PriorityUpdateFrame priority_update; priority_update.prioritized_element_type = REQUEST_STREAM;