Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Unified Diff: net/quic/quic_spdy_stream.h

Issue 1870833005: relnote: Implements OnHeaderFrameStart and OnHeaderFrameEnd in QuicHeadersStream. Not used in produ… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@06_CL_119188441
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/quic/quic_spdy_stream.h
diff --git a/net/quic/quic_spdy_stream.h b/net/quic/quic_spdy_stream.h
index 2d864955f0f60eef2796eba1809b2d488fed1b74..29bab655a1e76dec7301c18699b94a9037e14da6 100644
--- a/net/quic/quic_spdy_stream.h
+++ b/net/quic/quic_spdy_stream.h
@@ -20,6 +20,7 @@
#include "net/base/iovec.h"
#include "net/base/ip_endpoint.h"
#include "net/base/net_export.h"
+#include "net/quic/quic_header_list.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_stream_sequencer.h"
#include "net/quic/reliable_quic_stream.h"
@@ -84,6 +85,13 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
// should be closed; no more data will be sent by the peer.
virtual void OnStreamHeadersComplete(bool fin, size_t frame_len);
+ // Called by the session when decompressed headers have been completely
+ // delivered to this stream. If |fin| is true, then this stream
+ // should be closed; no more data will be sent by the peer.
+ virtual void OnStreamHeaderList(bool fin,
+ size_t frame_len,
+ const QuicHeaderList& header_list);
+
// Called by the session when decompressed PUSH_PROMISE headers data
// is received for this stream.
// May be called multiple times, with each call providing additional headers
@@ -95,6 +103,12 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
virtual void OnPromiseHeadersComplete(QuicStreamId promised_id,
size_t frame_len);
+ // Called by the session when decompressed push promise headers have
+ // been completely delivered to this stream.
+ virtual void OnPromiseHeaderList(QuicStreamId promised_id,
+ size_t frame_len,
+ const QuicHeaderList& header_list);
+
// Override the base class to not discard response when receiving
// QUIC_STREAM_NO_ERROR on QUIC_VERSION_29 and later versions.
void OnStreamReset(const QuicRstStreamFrame& frame) override;
@@ -121,6 +135,9 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
// Marks |bytes_consumed| of the trailers data as consumed.
void MarkTrailersConsumed(size_t bytes_consumed);
+ // Clears |header_list_|.
+ void ConsumeHeaderList() { header_list_.Clear(); }
+
// This block of functions wraps the sequencer's functions of the same
// name. These methods return uncompressed data until that has
// been fully processed. Then they simply delegate to the sequencer.
@@ -144,6 +161,8 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
return decompressed_headers_;
}
+ const QuicHeaderList& header_list() const { return header_list_; }
+
bool trailers_decompressed() const { return trailers_decompressed_; }
const std::string& decompressed_trailers() const {
@@ -166,6 +185,12 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
// trailing) headers are expected next.
virtual void OnInitialHeadersComplete(bool fin, size_t frame_len);
virtual void OnTrailingHeadersComplete(bool fin, size_t frame_len);
+ virtual void OnInitialHeadersComplete(bool fin,
+ size_t frame_len,
+ const QuicHeaderList& header_list);
+ virtual void OnTrailingHeadersComplete(bool fin,
+ size_t frame_len,
+ const QuicHeaderList& header_list);
QuicSpdySession* spdy_session() const { return spdy_session_; }
Visitor* visitor() { return visitor_; }
@@ -190,6 +215,9 @@ class NET_EXPORT_PRIVATE QuicSpdyStream : public ReliableQuicStream {
// Contains a copy of the decompressed headers until they are consumed
// via ProcessData or Readv.
std::string decompressed_headers_;
+ // Contains a copy of the decompressed header (name, value) pairs until they
+ // are consumed via Readv.
+ QuicHeaderList header_list_;
// True if the trailers have been completely decompressed.
bool trailers_decompressed_;

Powered by Google App Engine
This is Rietveld 408576698