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;
}