Exclude locally_closed_streams_highest_offset_.size() in QuicSession::ShouldKeepConnectionAlive().

When the connection aliveness is consulted and the only request streams are locally closed streams whose highest byte offset hasn't arrived yet, I don't think we need to wait for those trailing bytes, keeping the connection alive.

gfe-relnote: protected by gfe2_reloadable_flag_quic_aggressive_connection_aliveness.pb.cfg
PiperOrigin-RevId: 262377696
Change-Id: Ie4f57173d8e7a996fd55fa3b24426ec2fc2c70dc
diff --git a/quic/quartc/quartc_session.cc b/quic/quartc/quartc_session.cc
index f851579..a7a96ee 100644
--- a/quic/quartc/quartc_session.cc
+++ b/quic/quartc/quartc_session.cc
@@ -207,7 +207,7 @@
 
 bool QuartcSession::ShouldKeepConnectionAlive() const {
   // TODO(mellem): Quartc may want different keepalive logic than HTTP.
-  return GetNumOpenDynamicStreams() > 0;
+  return GetNumActiveStreams() > 0;
 }
 
 void QuartcSession::OnConnectionClosed(const QuicConnectionCloseFrame& frame,
diff --git a/quic/quartc/quartc_stream_test.cc b/quic/quartc/quartc_stream_test.cc
index 719cca7..b689e57 100644
--- a/quic/quartc/quartc_stream_test.cc
+++ b/quic/quartc/quartc_stream_test.cc
@@ -93,7 +93,7 @@
   const QuicCryptoStream* GetCryptoStream() const override { return nullptr; }
   QuicCryptoStream* GetMutableCryptoStream() override { return nullptr; }
   bool ShouldKeepConnectionAlive() const override {
-    return GetNumOpenDynamicStreams() > 0;
+    return GetNumActiveStreams() > 0;
   }
 
   // Called by QuicStream when they want to close stream.