diff options
Diffstat (limited to 'chromium/net/quic/core/quic_spdy_stream.cc')
-rw-r--r-- | chromium/net/quic/core/quic_spdy_stream.cc | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/chromium/net/quic/core/quic_spdy_stream.cc b/chromium/net/quic/core/quic_spdy_stream.cc index 016587ca85c..48c17cdd8d5 100644 --- a/chromium/net/quic/core/quic_spdy_stream.cc +++ b/chromium/net/quic/core/quic_spdy_stream.cc @@ -26,23 +26,25 @@ namespace net { " ") QuicSpdyStream::QuicSpdyStream(QuicStreamId id, QuicSpdySession* spdy_session) - : QuicStream(id, spdy_session), + : QuicStream(id, spdy_session, /*is_static=*/false), spdy_session_(spdy_session), visitor_(nullptr), headers_decompressed_(false), - priority_(kDefaultPriority), trailers_decompressed_(false), trailers_consumed_(false) { DCHECK_NE(kCryptoStreamId, id); // Don't receive any callbacks from the sequencer until headers // are complete. sequencer()->SetBlockedUntilFlush(); - spdy_session_->RegisterStreamPriority(id, priority_); + if (!session()->register_streams_early()) { + spdy_session_->RegisterStreamPriority(id, /*is_static=*/false, priority()); + } } QuicSpdyStream::~QuicSpdyStream() { - if (spdy_session_ != nullptr) { - spdy_session_->UnregisterStreamPriority(id()); + if (spdy_session_ != nullptr && !session()->register_streams_early()) { + spdy_session_->UnregisterStreamPriority(id(), + /*is_static=*/false); } } @@ -51,7 +53,7 @@ size_t QuicSpdyStream::WriteHeaders( bool fin, QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) { size_t bytes_written = spdy_session_->WriteHeaders( - id(), std::move(header_block), fin, priority_, std::move(ack_listener)); + id(), std::move(header_block), fin, priority(), std::move(ack_listener)); if (fin) { // TODO(rch): Add test to ensure fin_sent_ is set whenever a fin is sent. set_fin_sent(true); @@ -87,8 +89,9 @@ size_t QuicSpdyStream::WriteTrailers( // Write the trailing headers with a FIN, and close stream for writing: // trailers are the last thing to be sent on a stream. const bool kFin = true; - size_t bytes_written = spdy_session_->WriteHeaders( - id(), std::move(trailer_block), kFin, priority_, std::move(ack_listener)); + size_t bytes_written = + spdy_session_->WriteHeaders(id(), std::move(trailer_block), kFin, + priority(), std::move(ack_listener)); set_fin_sent(kFin); // Trailers are the last thing to be sent on a stream, but if there is still @@ -137,12 +140,6 @@ void QuicSpdyStream::ConsumeHeaderList() { } } -void QuicSpdyStream::SetPriority(SpdyPriority priority) { - DCHECK_EQ(0u, stream_bytes_written()); - priority_ = priority; - spdy_session_->UpdateStreamPriority(id(), priority); -} - void QuicSpdyStream::OnStreamHeadersPriority(SpdyPriority priority) { DCHECK_EQ(Perspective::IS_SERVER, session()->connection()->perspective()); SetPriority(priority); @@ -308,10 +305,6 @@ bool QuicSpdyStream::FinishedReadingTrailers() const { } } -SpdyPriority QuicSpdyStream::priority() const { - return priority_; -} - void QuicSpdyStream::ClearSession() { spdy_session_ = nullptr; } |