Pass payload length or compressed header block length to some HttpDecoder::Visitor methods.

gfe-relnote: n/a, no functional change.
PiperOrigin-RevId: 303422942
Change-Id: I42bad990876ca47ca8038d5b4745748a76e32c3e
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index 3a4c146..573ab90 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -69,8 +69,9 @@
     return false;
   }
 
-  bool OnDataFrameStart(QuicByteCount header_length) override {
-    return stream_->OnDataFrameStart(header_length);
+  bool OnDataFrameStart(QuicByteCount header_length,
+                        QuicByteCount payload_length) override {
+    return stream_->OnDataFrameStart(header_length, payload_length);
   }
 
   bool OnDataFramePayload(quiche::QuicheStringPiece payload) override {
@@ -80,12 +81,13 @@
 
   bool OnDataFrameEnd() override { return stream_->OnDataFrameEnd(); }
 
-  bool OnHeadersFrameStart(QuicByteCount header_length) override {
+  bool OnHeadersFrameStart(QuicByteCount header_length,
+                           QuicByteCount payload_length) override {
     if (!VersionUsesHttp3(stream_->transport_version())) {
       CloseConnectionOnWrongFrame("Headers");
       return false;
     }
-    return stream_->OnHeadersFrameStart(header_length);
+    return stream_->OnHeadersFrameStart(header_length, payload_length);
   }
 
   bool OnHeadersFramePayload(quiche::QuicheStringPiece payload) override {
@@ -114,12 +116,14 @@
   }
 
   bool OnPushPromiseFramePushId(PushId push_id,
-                                QuicByteCount push_id_length) override {
+                                QuicByteCount push_id_length,
+                                QuicByteCount header_block_length) override {
     if (!VersionUsesHttp3(stream_->transport_version())) {
       CloseConnectionOnWrongFrame("Push Promise");
       return false;
     }
-    return stream_->OnPushPromiseFramePushId(push_id, push_id_length);
+    return stream_->OnPushPromiseFramePushId(push_id, push_id_length,
+                                             header_block_length);
   }
 
   bool OnPushPromiseFramePayload(quiche::QuicheStringPiece payload) override {
@@ -150,8 +154,10 @@
   }
 
   bool OnUnknownFrameStart(uint64_t frame_type,
-                           QuicByteCount header_length) override {
-    return stream_->OnUnknownFrameStart(frame_type, header_length);
+                           QuicByteCount header_length,
+                           QuicByteCount payload_length) override {
+    return stream_->OnUnknownFrameStart(frame_type, header_length,
+                                        payload_length);
   }
 
   bool OnUnknownFramePayload(quiche::QuicheStringPiece payload) override {
@@ -860,7 +866,8 @@
   spdy_session_ = nullptr;
 }
 
-bool QuicSpdyStream::OnDataFrameStart(QuicByteCount header_length) {
+bool QuicSpdyStream::OnDataFrameStart(QuicByteCount header_length,
+                                      QuicByteCount /*payload_length*/) {
   DCHECK(VersionUsesHttp3(transport_version()));
   if (!headers_decompressed_ || trailers_decompressed_) {
     stream_delegate()->OnStreamError(
@@ -952,7 +959,8 @@
   return header_acked_length;
 }
 
-bool QuicSpdyStream::OnHeadersFrameStart(QuicByteCount header_length) {
+bool QuicSpdyStream::OnHeadersFrameStart(QuicByteCount header_length,
+                                         QuicByteCount /*payload_length*/) {
   DCHECK(VersionUsesHttp3(transport_version()));
   DCHECK(!qpack_decoded_headers_accumulator_);
 
@@ -977,6 +985,9 @@
   DCHECK(VersionUsesHttp3(transport_version()));
   DCHECK(qpack_decoded_headers_accumulator_);
 
+  // TODO(b/152518220): Save |payload_length| argument of OnHeadersFrameStart()
+  // instead of accumulating payload length in |headers_payload_length_| or
+  // |trailers_payload_length_|.
   if (headers_decompressed_) {
     trailers_payload_length_ += payload.length();
   } else {
@@ -1031,8 +1042,10 @@
   return true;
 }
 
-bool QuicSpdyStream::OnPushPromiseFramePushId(PushId push_id,
-                                              QuicByteCount push_id_length) {
+bool QuicSpdyStream::OnPushPromiseFramePushId(
+    PushId push_id,
+    QuicByteCount push_id_length,
+    QuicByteCount /*header_block_length*/) {
   DCHECK(VersionUsesHttp3(transport_version()));
   DCHECK(!qpack_decoded_headers_accumulator_);
 
@@ -1061,7 +1074,8 @@
 }
 
 bool QuicSpdyStream::OnUnknownFrameStart(uint64_t frame_type,
-                                         QuicByteCount header_length) {
+                                         QuicByteCount header_length,
+                                         QuicByteCount /*payload_length*/) {
   if (spdy_session_->debug_visitor()) {
     spdy_session_->debug_visitor()->OnUnknownFrameStart(id(), frame_type);
   }