Do not call OnCanCreateNewOutgoingStream() from QuicSession::StreamDraining for IETF QUIC versions. Only receiving a MAX_STREAMS frame can allow a new stream to be created.

PiperOrigin-RevId: 404706361
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index e267737..dc0e8f5 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -1939,7 +1939,9 @@
   ++num_draining_streams_;
   if (!IsIncomingStream(stream_id)) {
     ++num_outgoing_draining_streams_;
-    OnCanCreateNewOutgoingStream(unidirectional);
+    if (!VersionHasIetfQuicFrames(transport_version())) {
+      OnCanCreateNewOutgoingStream(unidirectional);
+    }
   }
 }
 
diff --git a/quic/core/quic_session_test.cc b/quic/core/quic_session_test.cc
index b2f6274..f55ac6e 100644
--- a/quic/core/quic_session_test.cc
+++ b/quic/core/quic_session_test.cc
@@ -1803,7 +1803,9 @@
   QuicStreamId stream_id = stream->id();
   QuicStreamFrame data1(stream_id, true, 0, absl::string_view("HT"));
   session_.OnStreamFrame(data1);
-  EXPECT_CALL(session_, OnCanCreateNewOutgoingStream(false)).Times(1);
+  if (!VersionHasIetfQuicFrames(transport_version())) {
+    EXPECT_CALL(session_, OnCanCreateNewOutgoingStream(false)).Times(1);
+  }
   session_.StreamDraining(stream_id, /*unidirectional=*/false);
 }