Log all data in the sequencer when QUIC_HTTP_INVALID_FRAME_SEQUENCE_ON_SPDY_STREAM happens with no bytes ever consumed.
PiperOrigin-RevId: 547490662
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index ec9f1b9..eb1309d 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -960,7 +960,9 @@
<< ", NumBytesConsumed: "
<< sequencer()->NumBytesConsumed()
<< ", total_body_bytes_received: "
- << body_manager_.total_body_bytes_received();
+ << body_manager_.total_body_bytes_received()
+ << ", header_length: " << header_length
+ << ", payload_length: " << payload_length;
stream_delegate()->OnStreamError(
QUIC_HTTP_INVALID_FRAME_SEQUENCE_ON_SPDY_STREAM,
"Unexpected DATA frame received.");
diff --git a/quiche/quic/core/http/quic_spdy_stream.h b/quiche/quic/core/http/quic_spdy_stream.h
index 16a6212..c42367d 100644
--- a/quiche/quic/core/http/quic_spdy_stream.h
+++ b/quiche/quic/core/http/quic_spdy_stream.h
@@ -375,6 +375,10 @@
void set_invalid_request_details(std::string invalid_request_details);
+ // Called by HttpDecoderVisitor.
+ virtual bool OnDataFrameStart(QuicByteCount header_length,
+ QuicByteCount payload_length);
+
private:
friend class test::QuicSpdyStreamPeer;
friend class test::QuicStreamPeer;
@@ -390,8 +394,6 @@
};
// Called by HttpDecoderVisitor.
- bool OnDataFrameStart(QuicByteCount header_length,
- QuicByteCount payload_length);
bool OnDataFramePayload(absl::string_view payload);
bool OnDataFrameEnd();
bool OnHeadersFrameStart(QuicByteCount header_length,