Set `header_decoding_delay_` before calling methods.

In QuicSpdyStream::OnHeadersDecoded(), set `header_decoding_delay_` before
calling Http3DebugVisitor::OnHeadersDecoded() and OnStreamHeaderList(), to allow
subclasses to record decoding delay, for example, in an
OnInitialHeadersComplete() override.

PiperOrigin-RevId: 642265512
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index 1634202..7637c4c 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -577,19 +577,9 @@
       /* is_sent = */ false, headers.compressed_header_bytes(),
       headers.uncompressed_header_bytes());
 
-  Http3DebugVisitor* const debug_visitor = spdy_session()->debug_visitor();
-  if (debug_visitor) {
-    debug_visitor->OnHeadersDecoded(id(), headers);
-  }
-
-  OnStreamHeaderList(/* fin = */ false, headers_payload_length_, headers);
-
   header_decoding_delay_ = QuicTime::Delta::Zero();
 
   if (blocked_on_decoding_headers_) {
-    blocked_on_decoding_headers_ = false;
-    // Continue decoding HTTP/3 frames.
-    OnDataAvailable();
     const QuicTime now = session()->GetClock()->ApproximateNow();
     if (!header_block_received_time_.IsInitialized() ||
         now < header_block_received_time_) {
@@ -598,6 +588,19 @@
       header_decoding_delay_ = now - header_block_received_time_;
     }
   }
+
+  Http3DebugVisitor* const debug_visitor = spdy_session()->debug_visitor();
+  if (debug_visitor) {
+    debug_visitor->OnHeadersDecoded(id(), headers);
+  }
+
+  OnStreamHeaderList(/* fin = */ false, headers_payload_length_, headers);
+
+  if (blocked_on_decoding_headers_) {
+    blocked_on_decoding_headers_ = false;
+    // Continue decoding HTTP/3 frames.
+    OnDataAvailable();
+  }
 }
 
 void QuicSpdyStream::OnHeaderDecodingError(QuicErrorCode error_code,