Send QPACK Stream Cancellation instruction. This relands the part of cl/282861038 that was reverted in cl/283820632. gfe-relnote: n/a, change to QUIC v99-only code. Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99. PiperOrigin-RevId: 285381536 Change-Id: I9c3b914eba11cf53db1617ce350935f6a2dbbdd6
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc index 78d8593..bf1f127 100644 --- a/quic/core/http/quic_spdy_stream.cc +++ b/quic/core/http/quic_spdy_stream.cc
@@ -680,7 +680,10 @@ void QuicSpdyStream::OnStreamReset(const QuicRstStreamFrame& frame) { if (frame.error_code != QUIC_STREAM_NO_ERROR) { - // TODO(b/145684124) Call QpackDecoder::OnStreamReset(). + if (VersionUsesHttp3(transport_version()) && !fin_received() && + spdy_session_->qpack_decoder()) { + spdy_session_->qpack_decoder()->OnStreamReset(id()); + } QuicStream::OnStreamReset(frame); return; @@ -695,7 +698,10 @@ } void QuicSpdyStream::Reset(QuicRstStreamErrorCode error) { - // TODO(b/145684124) Call QpackDecoder::OnStreamReset(). + if (VersionUsesHttp3(transport_version()) && !fin_received() && + spdy_session_->qpack_decoder()) { + spdy_session_->qpack_decoder()->OnStreamReset(id()); + } QuicStream::Reset(error); }
diff --git a/quic/core/http/quic_spdy_stream_test.cc b/quic/core/http/quic_spdy_stream_test.cc index bc85384..efb34ac 100644 --- a/quic/core/http/quic_spdy_stream_test.cc +++ b/quic/core/http/quic_spdy_stream_test.cc
@@ -2534,8 +2534,7 @@ // Stream Cancellation instruction is sent on QPACK decoder stream // when stream is reset. -// TODO(b/145684124) Re-enable. -TEST_P(QuicSpdyStreamTest, DISABLED_StreamCancellationWhenStreamReset) { +TEST_P(QuicSpdyStreamTest, StreamCancellationWhenStreamReset) { if (!UsesHttp3()) { return; } @@ -2554,8 +2553,7 @@ // Stream Cancellation instruction is sent on QPACK decoder stream // when RESET_STREAM frame is received. -// TODO(b/145684124) Re-enable. -TEST_P(QuicSpdyStreamTest, DISABLED_StreamCancellationOnResetReceived) { +TEST_P(QuicSpdyStreamTest, StreamCancellationOnResetReceived) { if (!UsesHttp3()) { return; }