Restart bandwidth BOW-response triggered bandwidth resumption experiment.

Protected by FLAGS_quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle_v2.

PiperOrigin-RevId: 455725458
diff --git a/quiche/quic/core/http/quic_server_session_base.cc b/quiche/quic/core/http/quic_server_session_base.cc
index d59602e..f94f09f 100644
--- a/quiche/quic/core/http/quic_server_session_base.cc
+++ b/quiche/quic/core/http/quic_server_session_base.cc
@@ -88,7 +88,7 @@
 
   enable_sending_bandwidth_estimate_when_network_idle_ =
       GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle) &&
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2) &&
       version().HasIetfQuicFrames() &&
       ContainsQuicTag(config()->ReceivedConnectionOptions(), kBWID);
 
@@ -146,7 +146,7 @@
     const bool success = MaybeSendAddressToken();
     QUIC_BUG_IF(QUIC_BUG_25522, !success) << "Failed to send address token.";
     QUIC_RESTART_FLAG_COUNT_N(
-        quic_enable_sending_bandwidth_estimate_when_network_idle, 2, 3);
+        quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 2, 3);
   }
 }
 
@@ -154,9 +154,9 @@
   // Sending bandwidth is no longer conditioned on if session does bandwidth
   // resumption.
   if (GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) {
     QUIC_RESTART_FLAG_COUNT_N(
-        quic_enable_sending_bandwidth_estimate_when_network_idle, 3, 3);
+        quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 3, 3);
     return;
   }
   if (!bandwidth_resumption_enabled_) {
diff --git a/quiche/quic/core/http/quic_server_session_base_test.cc b/quiche/quic/core/http/quic_server_session_base_test.cc
index df099a6..a722240 100644
--- a/quiche/quic/core/http/quic_server_session_base_test.cc
+++ b/quiche/quic/core/http/quic_server_session_base_test.cc
@@ -608,7 +608,7 @@
                                     HAS_RETRANSMITTABLE_DATA, true);
 
   if (GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) {
     EXPECT_CALL(*connection_, OnSendConnectionState(_)).Times(0);
   } else {
     // Verify that the proto has exactly the values we expect.
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index 050f26e..2f651ad 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -80,7 +80,7 @@
 // If true, server proactively retires client issued connection ID on reverse path validation failure. 
 QUIC_FLAG(quic_reloadable_flag_quic_retire_cid_on_reverse_path_validation_failure, true)
 // If true, server sends bandwidth eastimate when network is idle for a while.
-QUIC_FLAG(quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle, false)
+QUIC_FLAG(quic_restart_flag_quic_enable_sending_bandwidth_estimate_when_network_idle_v2, false)
 // If true, set burst token to 2 in cwnd bootstrapping experiment.
 QUIC_FLAG(quic_reloadable_flag_quic_conservative_bursts, false)
 // If true, stop resetting ideal_next_packet_send_time_ in pacing sender.
diff --git a/quiche/quic/core/quic_idle_network_detector.cc b/quiche/quic/core/quic_idle_network_detector.cc
index a5bd8ad..5a63ebc 100644
--- a/quiche/quic/core/quic_idle_network_detector.cc
+++ b/quiche/quic/core/quic_idle_network_detector.cc
@@ -74,10 +74,10 @@
   bandwidth_update_timeout_ = QuicTime::Delta::Infinite();
 
   if (GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle) &&
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2) &&
       handshake_timeout_.IsInfinite()) {
     QUIC_RESTART_FLAG_COUNT_N(
-        quic_enable_sending_bandwidth_estimate_when_network_idle, 1, 3);
+        quic_enable_sending_bandwidth_estimate_when_network_idle_v2, 1, 3);
     bandwidth_update_timeout_ = idle_network_timeout_ * 0.5;
   }
 
diff --git a/quiche/quic/core/quic_idle_network_detector_test.cc b/quiche/quic/core/quic_idle_network_detector_test.cc
index 9105ec9..a139eb2 100644
--- a/quiche/quic/core/quic_idle_network_detector_test.cc
+++ b/quiche/quic/core/quic_idle_network_detector_test.cc
@@ -103,7 +103,7 @@
       /*handshake_timeout=*/QuicTime::Delta::Infinite(),
       /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(600));
   if (!GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) {
     EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(600),
               alarm_->deadline());
 
@@ -141,7 +141,7 @@
   // Handshake completes in 200ms.
   const bool enable_sending_bandwidth_estimate_when_network_idle =
       GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle);
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2);
   clock_.AdvanceTime(QuicTime::Delta::FromMilliseconds(200));
   detector_->OnPacketReceived(clock_.Now());
   detector_->SetTimeouts(
@@ -195,7 +195,7 @@
   detector_->enable_shorter_idle_timeout_on_sent_packet();
   QuicTime::Delta idle_network_timeout = QuicTime::Delta::Zero();
   if (GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) {
     idle_network_timeout = QuicTime::Delta::FromSeconds(60);
   } else {
     idle_network_timeout = QuicTime::Delta::FromSeconds(30);
@@ -250,7 +250,7 @@
 TEST_F(QuicIdleNetworkDetectorTest,
        ResetBandwidthTimeoutWhenHandshakeTimeoutIsSet) {
   if (!GetQuicRestartFlag(
-          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+          quic_enable_sending_bandwidth_estimate_when_network_idle_v2)) {
     return;
   }
   detector_->SetTimeouts(