Simply QuicSpdySession::HasActiveRequest().

CleanUpSession() method is added in gfe_quic_server_session_test to simulate the shutdown of a QuicSession similar to production procedures.

gfe-relnote: protected by gfe2_reloadable_flag_quic_active_streams_never_negative.
PiperOrigin-RevId: 261400867
Change-Id: I34d37cc9e1e224dd1df254ec4c2b86c79a1f7533
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index d1c9d37..3c00c2b 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -824,9 +824,14 @@
 }
 
 bool QuicSpdySession::HasActiveRequestStreams() const {
-  // In the case where session is destructed by calling
-  // stream_map().clear(), we will have incorrect accounting here.
-  // TODO(renjietang): Modify destructors and make this a DCHECK.
+  if (GetQuicReloadableFlag(quic_active_streams_never_negative)) {
+    QUIC_RELOADABLE_FLAG_COUNT(quic_active_streams_never_negative);
+    DCHECK(static_cast<size_t>(stream_map().size()) >=
+           num_incoming_static_streams() + num_outgoing_static_streams());
+    return stream_map().size() - num_incoming_static_streams() -
+               num_outgoing_static_streams() >
+           0;
+  }
   if (static_cast<size_t>(stream_map().size()) >
       num_incoming_static_streams() + num_outgoing_static_streams()) {
     return stream_map().size() - num_incoming_static_streams() -