Add DCHECK to VersionUsesQpack().
QPACK streams can only be instantiated if the transport version supports
unidirectional stream types. Document this using a DCHECK.
gfe-relnote: Add DCHECK that obviously will never fail.
PiperOrigin-RevId: 253273733
Change-Id: Iefb3f56f97ef54322f850ad58ecbfe1ec9c522a1
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h
index b33e084..8a64a12 100644
--- a/quic/core/quic_versions.h
+++ b/quic/core/quic_versions.h
@@ -355,6 +355,12 @@
return transport_version == QUIC_VERSION_99;
}
+// Returns whether |transport_version| has HTTP/3 unidirectional stream type.
+QUIC_EXPORT_PRIVATE inline bool VersionHasStreamType(
+ QuicTransportVersion transport_version) {
+ return transport_version == QUIC_VERSION_99;
+}
+
// If true:
// * QuicSpdySession instantiates a QPACK encoder and decoder;
// * HEADERS frames (containing headers or trailers) are sent on
@@ -377,6 +383,7 @@
const bool uses_qpack = (transport_version == QUIC_VERSION_99);
if (uses_qpack) {
DCHECK(VersionHasDataFrameHeader(transport_version));
+ DCHECK(VersionHasStreamType(transport_version));
}
return uses_qpack;
}
@@ -397,12 +404,6 @@
return transport_version == QUIC_VERSION_99;
}
-// Returns whether |transport_version| has HTTP/3 stream type.
-QUIC_EXPORT_PRIVATE inline bool VersionHasStreamType(
- QuicTransportVersion transport_version) {
- return transport_version == QUIC_VERSION_99;
-}
-
// Returns the ALPN string to use in TLS for this version of QUIC.
QUIC_EXPORT_PRIVATE std::string AlpnForVersion(
ParsedQuicVersion parsed_version);