Switch the order of QPACK streams sending stream type.
QPACK decoder stream is created before the encoder stream. It would be easier if they send out stream types in the order they are created, so that when the session is write blocked and resumed, the same order of sending can be expected.
Also removed outdated TODO's. A bigger and better change can be made when we support 0 initial stream limit.
gfe-relnote: protected by disabled v99 flag.
PiperOrigin-RevId: 282818824
Change-Id: I4f998fd186669dabaa806173c078300396e0a5e2
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index 758ece7..dfb8028 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -596,10 +596,8 @@
}
QuicConnection::ScopedPacketFlusher flusher(connection());
send_control_stream_->MaybeSendSettingsFrame();
- // TODO(renjietang): Remove this once stream id manager can take dynamically
- // created HTTP/3 unidirectional streams.
- qpack_encoder_send_stream_->MaybeSendStreamType();
qpack_decoder_send_stream_->MaybeSendStreamType();
+ qpack_encoder_send_stream_->MaybeSendStreamType();
}
QpackEncoder* QuicSpdySession::qpack_encoder() {
diff --git a/quic/core/http/quic_spdy_stream_test.cc b/quic/core/http/quic_spdy_stream_test.cc
index 1fefd97..39bd6b0 100644
--- a/quic/core/http/quic_spdy_stream_test.cc
+++ b/quic/core/http/quic_spdy_stream_test.cc
@@ -236,14 +236,14 @@
EXPECT_CALL(*session_, WritevData(send_control_stream,
send_control_stream->id(), _, _, _))
.Times(2);
- auto qpack_encoder_stream =
- QuicSpdySessionPeer::GetQpackEncoderSendStream(session_.get());
- EXPECT_CALL(*session_, WritevData(qpack_encoder_stream,
- qpack_encoder_stream->id(), 1, 0, _));
auto qpack_decoder_stream =
QuicSpdySessionPeer::GetQpackDecoderSendStream(session_.get());
EXPECT_CALL(*session_, WritevData(qpack_decoder_stream,
qpack_decoder_stream->id(), 1, 0, _));
+ auto qpack_encoder_stream =
+ QuicSpdySessionPeer::GetQpackEncoderSendStream(session_.get());
+ EXPECT_CALL(*session_, WritevData(qpack_encoder_stream,
+ qpack_encoder_stream->id(), 1, 0, _));
}
static_cast<QuicSession*>(session_.get())
->OnCryptoHandshakeEvent(QuicSession::ENCRYPTION_ESTABLISHED);