Internal change

PiperOrigin-RevId: 452615923
diff --git a/quiche/quic/core/quic_idle_network_detector.cc b/quiche/quic/core/quic_idle_network_detector.cc
index 6371596..a5bd8ad 100644
--- a/quiche/quic/core/quic_idle_network_detector.cc
+++ b/quiche/quic/core/quic_idle_network_detector.cc
@@ -71,6 +71,7 @@
     QuicTime::Delta handshake_timeout, QuicTime::Delta idle_network_timeout) {
   handshake_timeout_ = handshake_timeout;
   idle_network_timeout_ = idle_network_timeout;
+  bandwidth_update_timeout_ = QuicTime::Delta::Infinite();
 
   if (GetQuicRestartFlag(
           quic_enable_sending_bandwidth_estimate_when_network_idle) &&
diff --git a/quiche/quic/core/quic_idle_network_detector_test.cc b/quiche/quic/core/quic_idle_network_detector_test.cc
index b838cbd..9105ec9 100644
--- a/quiche/quic/core/quic_idle_network_detector_test.cc
+++ b/quiche/quic/core/quic_idle_network_detector_test.cc
@@ -247,6 +247,35 @@
   EXPECT_FALSE(alarm_->IsSet());
 }
 
+TEST_F(QuicIdleNetworkDetectorTest,
+       ResetBandwidthTimeoutWhenHandshakeTimeoutIsSet) {
+  if (!GetQuicRestartFlag(
+          quic_enable_sending_bandwidth_estimate_when_network_idle)) {
+    return;
+  }
+  detector_->SetTimeouts(
+      /*handshake_timeout=*/QuicTime::Delta::Infinite(),
+      /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
+  // The deadline is set based on the bandwidth timeout.
+  EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(10),
+            alarm_->deadline());
+
+  detector_->SetTimeouts(
+      /*handshake_timeout=*/QuicTime::Delta::FromSeconds(15),
+      /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
+  // Bandwidth timeout is reset and the deadline is set based on the handshake
+  // timeout.
+  EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(15),
+            alarm_->deadline());
+
+  detector_->SetTimeouts(
+      /*handshake_timeout=*/QuicTime::Delta::Infinite(),
+      /*idle_network_timeout=*/QuicTime::Delta::FromSeconds(20));
+  // The deadline is set based on the bandwidth timeout.
+  EXPECT_EQ(clock_.Now() + QuicTime::Delta::FromSeconds(10),
+            alarm_->deadline());
+}
+
 }  // namespace
 
 }  // namespace test