| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/core/quic_client_session_base.h" | 5 #include "net/quic/core/quic_client_session_base.h" |
| 6 | 6 |
| 7 #include "net/quic/core/quic_client_promised_info.h" | 7 #include "net/quic/core/quic_client_promised_info.h" |
| 8 #include "net/quic/core/quic_flags.h" | 8 #include "net/quic/core/quic_flags.h" |
| 9 #include "net/quic/core/spdy_utils.h" | 9 #include "net/quic/core/spdy_utils.h" |
| 10 | 10 |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 return static_cast<QuicSpdyStream*>(it->second.get()); | 181 return static_cast<QuicSpdyStream*>(it->second.get()); |
| 182 } | 182 } |
| 183 return nullptr; | 183 return nullptr; |
| 184 } | 184 } |
| 185 | 185 |
| 186 void QuicClientSessionBase::DeletePromised(QuicClientPromisedInfo* promised) { | 186 void QuicClientSessionBase::DeletePromised(QuicClientPromisedInfo* promised) { |
| 187 push_promise_index_->promised_by_url()->erase(promised->url()); | 187 push_promise_index_->promised_by_url()->erase(promised->url()); |
| 188 // Since promised_by_id_ contains the unique_ptr, this will destroy | 188 // Since promised_by_id_ contains the unique_ptr, this will destroy |
| 189 // promised. | 189 // promised. |
| 190 promised_by_id_.erase(promised->id()); | 190 promised_by_id_.erase(promised->id()); |
| 191 headers_stream()->MaybeReleaseSequencerBuffer(); |
| 191 } | 192 } |
| 192 | 193 |
| 193 void QuicClientSessionBase::OnPushStreamTimedOut(QuicStreamId stream_id) {} | 194 void QuicClientSessionBase::OnPushStreamTimedOut(QuicStreamId stream_id) {} |
| 194 | 195 |
| 195 void QuicClientSessionBase::ResetPromised(QuicStreamId id, | 196 void QuicClientSessionBase::ResetPromised(QuicStreamId id, |
| 196 QuicRstStreamErrorCode error_code) { | 197 QuicRstStreamErrorCode error_code) { |
| 197 SendRstStream(id, error_code, 0); | 198 SendRstStream(id, error_code, 0); |
| 198 if (!IsOpenStream(id)) { | 199 if (!IsOpenStream(id)) { |
| 199 MaybeIncreaseLargestPeerStreamId(id); | 200 MaybeIncreaseLargestPeerStreamId(id); |
| 200 InsertLocallyClosedStreamsHighestOffset(id, 0); | 201 InsertLocallyClosedStreamsHighestOffset(id, 0); |
| 201 } | 202 } |
| 202 } | 203 } |
| 203 | 204 |
| 205 void QuicClientSessionBase::CloseStreamInner(QuicStreamId stream_id, |
| 206 bool locally_reset) { |
| 207 QuicSpdySession::CloseStreamInner(stream_id, locally_reset); |
| 208 headers_stream()->MaybeReleaseSequencerBuffer(); |
| 209 } |
| 210 |
| 211 bool QuicClientSessionBase::ShouldReleaseHeadersStreamSequencerBuffer() { |
| 212 return num_active_requests() == 0 && promised_by_id_.empty(); |
| 213 } |
| 214 |
| 204 } // namespace net | 215 } // namespace net |
| OLD | NEW |