Index: net/quic/core/quic_client_session_base.cc |
diff --git a/net/quic/core/quic_client_session_base.cc b/net/quic/core/quic_client_session_base.cc |
index 3fb43d14b14ba05e4a11b513c2ed3a325b76a44f..35438af5f0e15a61f0f7e899ac510162df9180b5 100644 |
--- a/net/quic/core/quic_client_session_base.cc |
+++ b/net/quic/core/quic_client_session_base.cc |
@@ -188,6 +188,7 @@ void QuicClientSessionBase::DeletePromised(QuicClientPromisedInfo* promised) { |
// Since promised_by_id_ contains the unique_ptr, this will destroy |
// promised. |
promised_by_id_.erase(promised->id()); |
+ headers_stream()->MaybeReleaseSequencerBuffer(); |
} |
void QuicClientSessionBase::OnPushStreamTimedOut(QuicStreamId stream_id) {} |
@@ -201,4 +202,14 @@ void QuicClientSessionBase::ResetPromised(QuicStreamId id, |
} |
} |
+void QuicClientSessionBase::CloseStreamInner(QuicStreamId stream_id, |
+ bool locally_reset) { |
+ QuicSpdySession::CloseStreamInner(stream_id, locally_reset); |
+ headers_stream()->MaybeReleaseSequencerBuffer(); |
+} |
+ |
+bool QuicClientSessionBase::ShouldReleaseHeadersStreamSequencerBuffer() { |
+ return num_active_requests() == 0 && promised_by_id_.empty(); |
+} |
+ |
} // namespace net |