Enable IETF QUIC for more gfe/gfe2/e2e tests. Also let quic_spdy_client process MAX_STREAMS if it cannot open new streams.

gfe-relnote: n/a (test only)
PiperOrigin-RevId: 303384725
Change-Id: Iff726ab1a55de0a521e287434bfbae2b3548cc8b
diff --git a/quic/core/http/quic_spdy_client_session.h b/quic/core/http/quic_spdy_client_session.h
index 32424ea..e8171ba 100644
--- a/quic/core/http/quic_spdy_client_session.h
+++ b/quic/core/http/quic_spdy_client_session.h
@@ -71,6 +71,8 @@
 
   int GetNumReceivedServerConfigUpdates() const;
 
+  using QuicSession::CanOpenNextOutgoingBidirectionalStream;
+
   void set_respect_goaway(bool respect_goaway) {
     respect_goaway_ = respect_goaway;
   }
diff --git a/quic/tools/quic_spdy_client_base.cc b/quic/tools/quic_spdy_client_base.cc
index b4d4382..a944d60 100644
--- a/quic/tools/quic_spdy_client_base.cc
+++ b/quic/tools/quic_spdy_client_base.cc
@@ -180,7 +180,12 @@
   if (!connected()) {
     return nullptr;
   }
-
+  if (VersionHasIetfQuicFrames(client_session()->transport_version())) {
+    // Process MAX_STREAMS from peer.
+    while (!client_session()->CanOpenNextOutgoingBidirectionalStream()) {
+      network_helper()->RunEventLoop();
+    }
+  }
   auto* stream = static_cast<QuicSpdyClientStream*>(
       client_session()->CreateOutgoingBidirectionalStream());
   if (stream) {