Revert "Add new field trial for controlling congestion window settings"

This reverts commit dd33d8ec7113ae7bee1511dc9f3f2d6336a7f083.

Reason for revert: Breaks upstream tests

Original change's description:
> Add new field trial for controlling congestion window settings
>
> Bug: None
> Change-Id: Idb7425e394db74a9dfb4f3764a58710497adff56
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131127
> Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
> Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/master@{#27538}

TBR=mflodman@webrtc.org,crodbro@webrtc.org,eshr@google.com

Change-Id: I17c6c2ed109f4427657457065abe186ec8b3d10c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132322
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27541}
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index e617def..1831f5d 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -239,7 +239,8 @@
 // Test congestion window pushback on network delay happens.
 TEST_F(GoogCcNetworkControllerTest, CongestionWindowPushbackOnNetworkDelay) {
   ScopedFieldTrials trial(
-      "WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/");
+      "WebRTC-CongestionWindowPushback/Enabled/WebRTC-CwndExperiment/"
+      "Enabled-800/");
   Scenario s("googcc_unit/cwnd_on_delay", false);
   auto send_net = s.CreateSimulationNode([=](NetworkNodeConfig* c) {
     c->simulation.bandwidth = DataRate::kbps(1000);
@@ -327,7 +328,8 @@
 TEST_F(GoogCcNetworkControllerTest,
        PaddingRateLimitedByCongestionWindowInTrial) {
   ScopedFieldTrials trial(
-      "WebRTC-CongestionWindow/QueueSize:200,MinBitrate:30000/");
+      "WebRTC-CongestionWindowPushback/Enabled/WebRTC-CwndExperiment/"
+      "Enabled-200/");
 
   Scenario s("googcc_unit/padding_limited", false);
   NetworkNodeConfig net_conf;
@@ -631,8 +633,8 @@
        TargetRateReducedOnPacingBufferBuildupInTrial) {
   // Configure strict pacing to ensure build-up.
   ScopedFieldTrials trial(
-      "WebRTC-CongestionWindow/QueueSize:100,MinBitrate:30000/"
-      "WebRTC-Video-Pacing/factor:1.0/"
+      "WebRTC-CongestionWindowPushback/Enabled/WebRTC-CwndExperiment/"
+      "Enabled-100/WebRTC-Video-Pacing/factor:1.0/"
       "WebRTC-AddPacingToCongestionWindowPushback/Enabled/");
 
   const DataRate kLinkCapacity = DataRate::kbps(1000);
diff --git a/rtc_base/experiments/rate_control_settings.cc b/rtc_base/experiments/rate_control_settings.cc
index 7ef42de..608996b 100644
--- a/rtc_base/experiments/rate_control_settings.cc
+++ b/rtc_base/experiments/rate_control_settings.cc
@@ -16,7 +16,6 @@
 #include <string>
 
 #include "api/transport/field_trial_based_config.h"
-#include "rtc_base/experiments/field_trial_parser.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/numerics/safe_conversions.h"
 
@@ -24,8 +23,11 @@
 
 namespace {
 
+const char* kCongestionWindowFieldTrialName = "WebRTC-CwndExperiment";
 const int kDefaultAcceptedQueueMs = 250;
 
+const char* kCongestionWindowPushbackFieldTrialName =
+    "WebRTC-CongestionWindowPushback";
 const int kDefaultMinPushbackTargetBitrateBps = 30000;
 
 const char kVp8TrustedRateControllerFieldTrialName[] =
@@ -41,6 +43,40 @@
 // Default to 35% hysteresis for simulcast screenshare.
 const double kDefaultScreenshareHysteresisFactor = 1.35;
 
+absl::optional<int> MaybeReadCwndExperimentParameter(
+    const WebRtcKeyValueConfig* const key_value_config) {
+  int64_t accepted_queue_ms;
+  std::string experiment_string =
+      key_value_config->Lookup(kCongestionWindowFieldTrialName);
+  int parsed_values =
+      sscanf(experiment_string.c_str(), "Enabled-%" PRId64, &accepted_queue_ms);
+  if (parsed_values == 1) {
+    RTC_CHECK_GE(accepted_queue_ms, 0)
+        << "Accepted must be greater than or equal to 0.";
+    return rtc::checked_cast<int>(accepted_queue_ms);
+  } else if (experiment_string.find("Enabled") == 0) {
+    return kDefaultAcceptedQueueMs;
+  }
+  return absl::nullopt;
+}
+
+absl::optional<int> MaybeReadCongestionWindowPushbackExperimentParameter(
+    const WebRtcKeyValueConfig* const key_value_config) {
+  uint32_t min_pushback_target_bitrate_bps;
+  std::string experiment_string =
+      key_value_config->Lookup(kCongestionWindowPushbackFieldTrialName);
+  int parsed_values = sscanf(experiment_string.c_str(), "Enabled-%" PRIu32,
+                             &min_pushback_target_bitrate_bps);
+  if (parsed_values == 1) {
+    RTC_CHECK_GE(min_pushback_target_bitrate_bps, 0)
+        << "Min pushback target bitrate must be greater than or equal to 0.";
+    return rtc::checked_cast<int>(min_pushback_target_bitrate_bps);
+  } else if (experiment_string.find("Enabled") == 0) {
+    return kDefaultMinPushbackTargetBitrateBps;
+  }
+  return absl::nullopt;
+}
+
 bool IsEnabled(const WebRtcKeyValueConfig* const key_value_config,
                absl::string_view key) {
   return key_value_config->Lookup(key).find("Enabled") == 0;
@@ -62,8 +98,12 @@
 
 RateControlSettings::RateControlSettings(
     const WebRtcKeyValueConfig* const key_value_config)
-    : congestion_window_("QueueSize"),
-      congestion_window_pushback_("MinBitrate"),
+    : congestion_window_("cwnd",
+                         MaybeReadCwndExperimentParameter(key_value_config)),
+      congestion_window_pushback_(
+          "cwnd_pushback",
+          MaybeReadCongestionWindowPushbackExperimentParameter(
+              key_value_config)),
       pacing_factor_("pacing_factor"),
       alr_probing_("alr_probing", false),
       trust_vp8_(
@@ -84,9 +124,8 @@
       probe_max_allocation_("probe_max_allocation", true),
       bitrate_adjuster_("bitrate_adjuster", false),
       vp8_s0_boost_("vp8_s0_boost", true) {
-  ParseFieldTrial({&congestion_window_, &congestion_window_pushback_},
-                  key_value_config->Lookup("WebRTC-CongestionWindow"));
-  ParseFieldTrial({&pacing_factor_, &alr_probing_, &trust_vp8_, &trust_vp9_,
+  ParseFieldTrial({&congestion_window_, &congestion_window_pushback_,
+                   &pacing_factor_, &alr_probing_, &trust_vp8_, &trust_vp9_,
                    &video_hysteresis_, &screenshare_hysteresis_,
                    &probe_max_allocation_, &bitrate_adjuster_, &vp8_s0_boost_},
                   key_value_config->Lookup("WebRTC-VideoRateControl"));
diff --git a/rtc_base/experiments/rate_control_settings_unittest.cc b/rtc_base/experiments/rate_control_settings_unittest.cc
index 0f23df0..0d8c376 100644
--- a/rtc_base/experiments/rate_control_settings_unittest.cc
+++ b/rtc_base/experiments/rate_control_settings_unittest.cc
@@ -23,8 +23,7 @@
   EXPECT_FALSE(
       RateControlSettings::ParseFromFieldTrials().UseCongestionWindow());
 
-  test::ScopedFieldTrials field_trials(
-      "WebRTC-CongestionWindow/QueueSize:100/");
+  test::ScopedFieldTrials field_trials("WebRTC-VideoRateControl/cwnd:100/");
   const RateControlSettings settings_after =
       RateControlSettings::ParseFromFieldTrials();
   EXPECT_TRUE(settings_after.UseCongestionWindow());
@@ -36,7 +35,7 @@
                    .UseCongestionWindowPushback());
 
   test::ScopedFieldTrials field_trials(
-      "WebRTC-CongestionWindow/QueueSize:100,MinBitrate:100000/");
+      "WebRTC-VideoRateControl/cwnd:100,cwnd_pushback:100000/");
   const RateControlSettings settings_after =
       RateControlSettings::ParseFromFieldTrials();
   EXPECT_TRUE(settings_after.UseCongestionWindowPushback());
diff --git a/video/end_to_end_tests/transport_feedback_tests.cc b/video/end_to_end_tests/transport_feedback_tests.cc
index 95ab6ce..b607bf6 100644
--- a/video/end_to_end_tests/transport_feedback_tests.cc
+++ b/video/end_to_end_tests/transport_feedback_tests.cc
@@ -345,7 +345,7 @@
 TEST_F(TransportFeedbackEndToEndTest,
        StopsAndResumesMediaWhenCongestionWindowFull) {
   test::ScopedFieldTrials override_field_trials(
-      "WebRTC-CongestionWindow/QueueSize:250/");
+      "WebRTC-CwndExperiment/Enabled-250/");
 
   class TransportFeedbackTester : public test::EndToEndTest {
    public: