Add APIs to allow sessions to read stream types from pending stream.

Pending stream will now allow receiving stream frame with zero offset.

gfe-relnote: version 99 only. Only used in test.
PiperOrigin-RevId: 247277571
Change-Id: Ib7986a27ce0106efd3102b50bfe82f0eac4b9fe3
diff --git a/quic/core/http/quic_spdy_session.h b/quic/core/http/quic_spdy_session.h
index 23e57c3..46f2b8a 100644
--- a/quic/core/http/quic_spdy_session.h
+++ b/quic/core/http/quic_spdy_session.h
@@ -198,6 +198,10 @@
   // Overridden to buffer incoming streams for version 99.
   bool ShouldBufferIncomingStream(QuicStreamId id) const override;
 
+  // Overridden to Process HTTP/3 stream types. No action will be taken if
+  // stream type cannot be read.
+  void ProcessPendingStreamType(PendingStream* pending) override;
+
   size_t WriteHeadersOnHeadersStreamImpl(
       QuicStreamId id,
       spdy::SpdyHeaderBlock headers,
@@ -237,6 +241,10 @@
   void set_max_uncompressed_header_bytes(
       size_t set_max_uncompressed_header_bytes);
 
+  // Creates HTTP/3 unidirectional stream of |id| and |type|. Sends
+  // STOP_SENDING frame if |type| is not supported.
+  void CreateIncomingStreamFromPending(QuicStreamId id, uint64_t type);
+
  private:
   friend class test::QuicSpdySessionPeer;