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,