gfe-relnote: Deprecate previously rolled back flag gfe2_reloadable_flag_quic_bbr_app_limited_recovery.

PiperOrigin-RevId: 256236011
Change-Id: I75f87f4495bf59d81774bf3e6b42fbb198e49b6b
diff --git a/quic/core/congestion_control/bbr_sender.cc b/quic/core/congestion_control/bbr_sender.cc
index ef06cbf..65a637c 100644
--- a/quic/core/congestion_control/bbr_sender.cc
+++ b/quic/core/congestion_control/bbr_sender.cc
@@ -125,7 +125,6 @@
       flexible_app_limited_(false),
       recovery_state_(NOT_IN_RECOVERY),
       recovery_window_(max_congestion_window_),
-      is_app_limited_recovery_(false),
       slower_startup_(false),
       rate_based_startup_(false),
       startup_rate_reduction_multiplier_(0),
@@ -750,11 +749,6 @@
         // Since the conservation phase is meant to be lasting for a whole
         // round, extend the current round as if it were started right now.
         current_round_trip_end_ = last_sent_packet_;
-        if (GetQuicReloadableFlag(quic_bbr_app_limited_recovery) &&
-            last_sample_is_app_limited_) {
-          QUIC_RELOADABLE_FLAG_COUNT(quic_bbr_app_limited_recovery);
-          is_app_limited_recovery_ = true;
-        }
       }
       break;
 
@@ -768,14 +762,10 @@
       // Exit recovery if appropriate.
       if (!has_losses && last_acked_packet > end_recovery_at_) {
         recovery_state_ = NOT_IN_RECOVERY;
-        is_app_limited_recovery_ = false;
       }
 
       break;
   }
-  if (recovery_state_ != NOT_IN_RECOVERY && is_app_limited_recovery_) {
-    sampler_.OnAppLimited();
-  }
 }
 
 // TODO(ianswett): Move this logic into BandwidthSampler.
diff --git a/quic/core/congestion_control/bbr_sender_test.cc b/quic/core/congestion_control/bbr_sender_test.cc
index 6627851..d071ee8 100644
--- a/quic/core/congestion_control/bbr_sender_test.cc
+++ b/quic/core/congestion_control/bbr_sender_test.cc
@@ -706,47 +706,6 @@
   EXPECT_GE(sender_->ExportDebugState().min_rtt_timestamp, probe_rtt_start);
 }
 
-// Verify that the first sample after PROBE_RTT is not used as the bandwidth,
-// because the round counter doesn't advance during PROBE_RTT.
-TEST_F(BbrSenderTest, AppLimitedRecoveryNoBandwidthDecrease) {
-  SetQuicReloadableFlag(quic_bbr_app_limited_recovery, true);
-  CreateDefaultSetup();
-  DriveOutOfStartup();
-
-  // We have no intention of ever finishing this transfer.
-  bbr_sender_.AddBytesToTransfer(100 * 1024 * 1024);
-
-  // Wait until the connection enters PROBE_RTT.
-  const QuicTime::Delta timeout = QuicTime::Delta::FromSeconds(12);
-  bool simulator_result = simulator_.RunUntilOrTimeout(
-      [this]() {
-        return sender_->ExportDebugState().mode == BbrSender::PROBE_RTT;
-      },
-      timeout);
-  ASSERT_TRUE(simulator_result);
-  ASSERT_EQ(BbrSender::PROBE_RTT, sender_->ExportDebugState().mode);
-
-  const QuicBandwidth beginning_bw = sender_->BandwidthEstimate();
-
-  // Run for most of PROBE_RTT.
-  const QuicTime probe_rtt_start = clock_->Now();
-  const QuicTime::Delta time_to_exit_probe_rtt =
-      kTestRtt + QuicTime::Delta::FromMilliseconds(200);
-  simulator_.RunFor(0.60 * time_to_exit_probe_rtt);
-  EXPECT_EQ(BbrSender::PROBE_RTT, sender_->ExportDebugState().mode);
-  // Lose a packet before exiting PROBE_RTT, which puts us in packet
-  // conservation and then continue there for a while and ensure the bandwidth
-  // estimate doesn't decrease.
-  for (int i = 0; i < 20; ++i) {
-    receiver_.DropNextIncomingPacket();
-    simulator_.RunFor(0.9 * kTestRtt);
-    // Ensure the bandwidth didn't decrease and the samples are app limited.
-    EXPECT_LE(beginning_bw, sender_->BandwidthEstimate());
-    EXPECT_TRUE(sender_->ExportDebugState().last_sample_is_app_limited);
-  }
-  EXPECT_GE(sender_->ExportDebugState().min_rtt_timestamp, probe_rtt_start);
-}
-
 // Verify that the connection enters and exits PROBE_RTT correctly.
 TEST_F(BbrSenderTest, ProbeRttBDPBasedCWNDTarget) {
   CreateDefaultSetup();