WebRTC-DeprecateGlobalFieldTrialString/Enabled/ - part 12/inf

rename WebRtcKeyValueConfig to FieldTrialsView

Bug: webrtc:10335
Change-Id: If725bd498c4c3daf144bee638230fa089fdde833
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256965
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36365}
diff --git a/call/BUILD.gn b/call/BUILD.gn
index cb85feb..7bbb44d 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -42,6 +42,7 @@
     ":rtp_interfaces",
     ":video_stream_api",
     "../api:fec_controller_api",
+    "../api:field_trials_view",
     "../api:frame_transformer_interface",
     "../api:network_state_predictor_api",
     "../api:rtc_error",
@@ -60,7 +61,6 @@
     "../api/task_queue",
     "../api/transport:bitrate_settings",
     "../api/transport:network_control",
-    "../api/transport:webrtc_key_value_config",
     "../modules/async_audio_processing",
     "../modules/audio_device",
     "../modules/audio_processing",
@@ -106,6 +106,7 @@
   deps = [
     "../api:array_view",
     "../api:fec_controller_api",
+    "../api:field_trials_view",
     "../api:frame_transformer_interface",
     "../api:network_state_predictor_api",
     "../api:rtp_headers",
@@ -114,7 +115,6 @@
     "../api/rtc_event_log",
     "../api/transport:bitrate_settings",
     "../api/transport:network_control",
-    "../api/transport:webrtc_key_value_config",
     "../api/units:timestamp",
     "../common_video:frame_counts",
     "../modules/rtp_rtcp:rtp_rtcp_format",
@@ -174,11 +174,11 @@
     "../api:array_view",
     "../api:bitrate_allocation",
     "../api:fec_controller_api",
+    "../api:field_trials_view",
     "../api:network_state_predictor_api",
     "../api:rtp_parameters",
     "../api:sequence_checker",
     "../api:transport_api",
-    "../api:webrtc_key_value_config",
     "../api/rtc_event_log",
     "../api/transport:field_trial_based_config",
     "../api/transport:goog_cc",
@@ -286,12 +286,12 @@
     "../api:array_view",
     "../api:callfactory_api",
     "../api:fec_controller_api",
+    "../api:field_trials_view",
     "../api:rtp_headers",
     "../api:rtp_parameters",
     "../api:sequence_checker",
     "../api:simulated_network_api",
     "../api:transport_api",
-    "../api:webrtc_key_value_config",
     "../api/rtc_event_log",
     "../api/transport:network_control",
     "../api/units:time_delta",
diff --git a/call/adaptation/BUILD.gn b/call/adaptation/BUILD.gn
index 4661c3e..9ce8ccd 100644
--- a/call/adaptation/BUILD.gn
+++ b/call/adaptation/BUILD.gn
@@ -32,10 +32,10 @@
     "video_stream_input_state_provider.h",
   ]
   deps = [
+    "../../api:field_trials_view",
     "../../api:rtp_parameters",
     "../../api:scoped_refptr",
     "../../api:sequence_checker",
-    "../../api:webrtc_key_value_config",
     "../../api/adaptation:resource_adaptation_api",
     "../../api/task_queue:task_queue",
     "../../api/video:video_adaptation",
diff --git a/call/adaptation/video_stream_adapter.cc b/call/adaptation/video_stream_adapter.cc
index 313bcc3..f30a4d7 100644
--- a/call/adaptation/video_stream_adapter.cc
+++ b/call/adaptation/video_stream_adapter.cc
@@ -204,7 +204,7 @@
 VideoStreamAdapter::VideoStreamAdapter(
     VideoStreamInputStateProvider* input_state_provider,
     VideoStreamEncoderObserver* encoder_stats_observer,
-    const WebRtcKeyValueConfig& field_trials)
+    const FieldTrialsView& field_trials)
     : input_state_provider_(input_state_provider),
       encoder_stats_observer_(encoder_stats_observer),
       balanced_settings_(field_trials),
diff --git a/call/adaptation/video_stream_adapter.h b/call/adaptation/video_stream_adapter.h
index a4a52f4..92a5aec 100644
--- a/call/adaptation/video_stream_adapter.h
+++ b/call/adaptation/video_stream_adapter.h
@@ -18,10 +18,10 @@
 #include "absl/types/optional.h"
 #include "absl/types/variant.h"
 #include "api/adaptation/resource.h"
+#include "api/field_trials_view.h"
 #include "api/rtp_parameters.h"
 #include "api/video/video_adaptation_counters.h"
 #include "api/video/video_stream_encoder_observer.h"
-#include "api/webrtc_key_value_config.h"
 #include "call/adaptation/adaptation_constraint.h"
 #include "call/adaptation/degradation_preference_provider.h"
 #include "call/adaptation/video_source_restrictions.h"
@@ -125,7 +125,7 @@
  public:
   VideoStreamAdapter(VideoStreamInputStateProvider* input_state_provider,
                      VideoStreamEncoderObserver* encoder_stats_observer,
-                     const WebRtcKeyValueConfig& field_trials);
+                     const FieldTrialsView& field_trials);
   ~VideoStreamAdapter();
 
   VideoSourceRestrictions source_restrictions() const;
diff --git a/call/call.cc b/call/call.cc
index 22907b92..5b30661 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -247,7 +247,7 @@
 
   Stats GetStats() const override;
 
-  const WebRtcKeyValueConfig& trials() const override;
+  const FieldTrialsView& trials() const override;
 
   TaskQueueBase* network_thread() const override;
   TaskQueueBase* worker_thread() const override;
@@ -379,7 +379,7 @@
   const std::unique_ptr<BitrateAllocator> bitrate_allocator_;
   const Call::Config config_ RTC_GUARDED_BY(worker_thread_);
   // Maps to config_.trials, can be used from any thread via `trials()`.
-  const WebRtcKeyValueConfig& trials_;
+  const FieldTrialsView& trials_;
 
   NetworkState audio_network_state_ RTC_GUARDED_BY(worker_thread_);
   NetworkState video_network_state_ RTC_GUARDED_BY(worker_thread_);
@@ -1295,7 +1295,7 @@
   return stats;
 }
 
-const WebRtcKeyValueConfig& Call::trials() const {
+const FieldTrialsView& Call::trials() const {
   return trials_;
 }
 
diff --git a/call/call.h b/call/call.h
index 11451c5..e4652d2 100644
--- a/call/call.h
+++ b/call/call.h
@@ -174,7 +174,7 @@
   virtual void SetClientBitratePreferences(
       const BitrateSettings& preferences) = 0;
 
-  virtual const WebRtcKeyValueConfig& trials() const = 0;
+  virtual const FieldTrialsView& trials() const = 0;
 
   virtual TaskQueueBase* network_thread() const = 0;
   virtual TaskQueueBase* worker_thread() const = 0;
diff --git a/call/call_config.h b/call/call_config.h
index ef505a4..3072fa4 100644
--- a/call/call_config.h
+++ b/call/call_config.h
@@ -11,6 +11,7 @@
 #define CALL_CALL_CONFIG_H_
 
 #include "api/fec_controller.h"
+#include "api/field_trials_view.h"
 #include "api/metronome/metronome.h"
 #include "api/neteq/neteq_factory.h"
 #include "api/network_state_predictor.h"
@@ -18,7 +19,6 @@
 #include "api/task_queue/task_queue_factory.h"
 #include "api/transport/bitrate_settings.h"
 #include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
 #include "call/audio_state.h"
 #include "call/rtp_transport_config.h"
 #include "call/rtp_transport_controller_send_factory_interface.h"
@@ -70,7 +70,7 @@
 
   // Key-value mapping of internal configurations to apply,
   // e.g. field trials.
-  const WebRtcKeyValueConfig* trials = nullptr;
+  const FieldTrialsView* trials = nullptr;
 
   TaskQueueBase* const network_task_queue_ = nullptr;
   // RtpTransportControllerSend to use for this call.
diff --git a/call/call_factory.cc b/call/call_factory.cc
index 4035785..6d4b2aa 100644
--- a/call/call_factory.cc
+++ b/call/call_factory.cc
@@ -31,7 +31,7 @@
 namespace {
 using TimeScopedNetworkConfig = DegradedCall::TimeScopedNetworkConfig;
 
-bool ParseConfigParam(const WebRtcKeyValueConfig& trials,
+bool ParseConfigParam(const FieldTrialsView& trials,
                       absl::string_view exp_name,
                       int* field) {
   std::string group = trials.Lookup(exp_name);
@@ -42,7 +42,7 @@
 }
 
 absl::optional<TimeScopedNetworkConfig> ParseDegradationConfig(
-    const WebRtcKeyValueConfig& trials,
+    const FieldTrialsView& trials,
     bool send) {
   std::string exp_prefix = "WebRTCFakeNetwork";
   if (send) {
@@ -80,7 +80,7 @@
 }
 
 std::vector<TimeScopedNetworkConfig> GetNetworkConfigs(
-    const WebRtcKeyValueConfig& trials,
+    const FieldTrialsView& trials,
     bool send) {
   FieldTrialStructList<TimeScopedNetworkConfig> trials_list(
       {FieldTrialStructMember("queue_length_packets",
diff --git a/call/degraded_call.cc b/call/degraded_call.cc
index 0d01e86..ef53851 100644
--- a/call/degraded_call.cc
+++ b/call/degraded_call.cc
@@ -277,7 +277,7 @@
   return call_->GetStats();
 }
 
-const WebRtcKeyValueConfig& DegradedCall::trials() const {
+const FieldTrialsView& DegradedCall::trials() const {
   return call_->trials();
 }
 
diff --git a/call/degraded_call.h b/call/degraded_call.h
index dd80a0c..dfd041a 100644
--- a/call/degraded_call.h
+++ b/call/degraded_call.h
@@ -90,7 +90,7 @@
 
   Stats GetStats() const override;
 
-  const WebRtcKeyValueConfig& trials() const override;
+  const FieldTrialsView& trials() const override;
 
   TaskQueueBase* network_thread() const override;
   TaskQueueBase* worker_thread() const override;
diff --git a/call/receive_time_calculator.cc b/call/receive_time_calculator.cc
index d6ffd39..417168b 100644
--- a/call/receive_time_calculator.cc
+++ b/call/receive_time_calculator.cc
@@ -24,7 +24,7 @@
 }  // namespace
 
 ReceiveTimeCalculatorConfig::ReceiveTimeCalculatorConfig(
-    const WebRtcKeyValueConfig& field_trials)
+    const FieldTrialsView& field_trials)
     : max_packet_time_repair("maxrep", TimeDelta::Millis(2000)),
       stall_threshold("stall", TimeDelta::Millis(5)),
       tolerance("tol", TimeDelta::Millis(1)),
@@ -39,12 +39,12 @@
 ReceiveTimeCalculatorConfig::~ReceiveTimeCalculatorConfig() = default;
 
 ReceiveTimeCalculator::ReceiveTimeCalculator(
-    const WebRtcKeyValueConfig& field_trials)
+    const FieldTrialsView& field_trials)
     : config_(field_trials) {}
 
 std::unique_ptr<ReceiveTimeCalculator>
 ReceiveTimeCalculator::CreateFromFieldTrial(
-    const WebRtcKeyValueConfig& field_trials) {
+    const FieldTrialsView& field_trials) {
   if (!field_trials.IsEnabled(kBweReceiveTimeCorrection))
     return nullptr;
   return std::make_unique<ReceiveTimeCalculator>(field_trials);
diff --git a/call/receive_time_calculator.h b/call/receive_time_calculator.h
index 276ddda..57ba331 100644
--- a/call/receive_time_calculator.h
+++ b/call/receive_time_calculator.h
@@ -14,15 +14,14 @@
 
 #include <memory>
 
+#include "api/field_trials_view.h"
 #include "api/units/time_delta.h"
-#include "api/webrtc_key_value_config.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 
 namespace webrtc {
 
 struct ReceiveTimeCalculatorConfig {
-  explicit ReceiveTimeCalculatorConfig(
-      const WebRtcKeyValueConfig& field_trials);
+  explicit ReceiveTimeCalculatorConfig(const FieldTrialsView& field_trials);
   ReceiveTimeCalculatorConfig(const ReceiveTimeCalculatorConfig&);
   ReceiveTimeCalculatorConfig& operator=(const ReceiveTimeCalculatorConfig&) =
       default;
@@ -44,8 +43,8 @@
 class ReceiveTimeCalculator {
  public:
   static std::unique_ptr<ReceiveTimeCalculator> CreateFromFieldTrial(
-      const WebRtcKeyValueConfig& field_trials);
-  explicit ReceiveTimeCalculator(const WebRtcKeyValueConfig& field_trials);
+      const FieldTrialsView& field_trials);
+  explicit ReceiveTimeCalculator(const FieldTrialsView& field_trials);
   int64_t ReconcileReceiveTimes(int64_t packet_time_us_,
                                 int64_t system_time_us_,
                                 int64_t safe_time_us_);
diff --git a/call/rtp_payload_params.cc b/call/rtp_payload_params.cc
index 5eff91f..ddd4470 100644
--- a/call/rtp_payload_params.cc
+++ b/call/rtp_payload_params.cc
@@ -127,7 +127,7 @@
 
 RtpPayloadParams::RtpPayloadParams(const uint32_t ssrc,
                                    const RtpPayloadState* state,
-                                   const WebRtcKeyValueConfig& trials)
+                                   const FieldTrialsView& trials)
     : ssrc_(ssrc),
       generic_picture_id_experiment_(
           absl::StartsWith(trials.Lookup("WebRTC-GenericPictureId"),
diff --git a/call/rtp_payload_params.h b/call/rtp_payload_params.h
index b1680a9..ff2de73 100644
--- a/call/rtp_payload_params.h
+++ b/call/rtp_payload_params.h
@@ -15,8 +15,8 @@
 #include <vector>
 
 #include "absl/types/optional.h"
+#include "api/field_trials_view.h"
 #include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
 #include "call/rtp_config.h"
 #include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
 #include "modules/rtp_rtcp/source/rtp_video_header.h"
@@ -34,7 +34,7 @@
  public:
   RtpPayloadParams(uint32_t ssrc,
                    const RtpPayloadState* state,
-                   const WebRtcKeyValueConfig& trials);
+                   const FieldTrialsView& trials);
   RtpPayloadParams(const RtpPayloadParams& other);
   ~RtpPayloadParams();
 
diff --git a/call/rtp_transport_config.h b/call/rtp_transport_config.h
index 3a2c76b..f2030b3 100644
--- a/call/rtp_transport_config.h
+++ b/call/rtp_transport_config.h
@@ -13,11 +13,11 @@
 
 #include <memory>
 
+#include "api/field_trials_view.h"
 #include "api/network_state_predictor.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/transport/bitrate_settings.h"
 #include "api/transport/network_control.h"
-#include "api/transport/webrtc_key_value_config.h"
 #include "rtc_base/task_queue.h"
 
 namespace webrtc {
@@ -43,7 +43,7 @@
 
   // Key-value mapping of internal configurations to apply,
   // e.g. field trials.
-  const WebRtcKeyValueConfig* trials = nullptr;
+  const FieldTrialsView* trials = nullptr;
 };
 }  // namespace webrtc
 
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index f366324..e9a8602 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -59,11 +59,11 @@
                             contraints.start_bitrate_bps, clock);
 }
 
-bool IsEnabled(const WebRtcKeyValueConfig& trials, absl::string_view key) {
+bool IsEnabled(const FieldTrialsView& trials, absl::string_view key) {
   return absl::StartsWith(trials.Lookup(key), "Enabled");
 }
 
-bool IsDisabled(const WebRtcKeyValueConfig& trials, absl::string_view key) {
+bool IsDisabled(const FieldTrialsView& trials, absl::string_view key) {
   return absl::StartsWith(trials.Lookup(key), "Disabled");
 }
 
@@ -74,7 +74,7 @@
 }  // namespace
 
 RtpTransportControllerSend::PacerSettings::PacerSettings(
-    const WebRtcKeyValueConfig& trials)
+    const FieldTrialsView& trials)
     : tq_disabled("Disabled"),
       holdback_window("holdback_window", PacingController::kMinSleepTime),
       holdback_packets("holdback_packets",
@@ -91,7 +91,7 @@
     const BitrateConstraints& bitrate_config,
     std::unique_ptr<ProcessThread> process_thread,
     TaskQueueFactory* task_queue_factory,
-    const WebRtcKeyValueConfig& trials)
+    const FieldTrialsView& trials)
     : clock_(clock),
       event_log_(event_log),
       bitrate_configurator_(bitrate_config),
diff --git a/call/rtp_transport_controller_send.h b/call/rtp_transport_controller_send.h
index ba14fdd..d9461db 100644
--- a/call/rtp_transport_controller_send.h
+++ b/call/rtp_transport_controller_send.h
@@ -59,7 +59,7 @@
       const BitrateConstraints& bitrate_config,
       std::unique_ptr<ProcessThread> process_thread,
       TaskQueueFactory* task_queue_factory,
-      const WebRtcKeyValueConfig& trials);
+      const FieldTrialsView& trials);
   ~RtpTransportControllerSend() override;
 
   RtpTransportControllerSend(const RtpTransportControllerSend&) = delete;
@@ -132,7 +132,7 @@
 
  private:
   struct PacerSettings {
-    explicit PacerSettings(const WebRtcKeyValueConfig& trials);
+    explicit PacerSettings(const FieldTrialsView& trials);
 
     bool use_task_queue_pacer() const { return !tq_disabled.Get(); }
 
@@ -223,7 +223,7 @@
   // and deleted before any other members.
   rtc::TaskQueue task_queue_;
 
-  const WebRtcKeyValueConfig& field_trials_;
+  const FieldTrialsView& field_trials_;
 };
 
 }  // namespace webrtc
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index c5de3a7..116c878 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -56,7 +56,7 @@
 using webrtc_internal_rtp_video_sender::RtpStreamSender;
 
 bool PayloadTypeSupportsSkippingFecPackets(const std::string& payload_name,
-                                           const WebRtcKeyValueConfig& trials) {
+                                           const FieldTrialsView& trials) {
   const VideoCodecType codecType = PayloadStringToCodecType(payload_name);
   if (codecType == kVideoCodecVP8 || codecType == kVideoCodecVP9) {
     return true;
@@ -70,7 +70,7 @@
 
 bool ShouldDisableRedAndUlpfec(bool flexfec_enabled,
                                const RtpConfig& rtp_config,
-                               const WebRtcKeyValueConfig& trials) {
+                               const FieldTrialsView& trials) {
   // Consistency of NACK and RED+ULPFEC parameters is checked in this function.
   const bool nack_enabled = rtp_config.nack.rtp_history_ms > 0;
 
@@ -126,7 +126,7 @@
     const RtpConfig& rtp,
     const std::map<uint32_t, RtpState>& suspended_ssrcs,
     int simulcast_index,
-    const WebRtcKeyValueConfig& trials) {
+    const FieldTrialsView& trials) {
   // If flexfec is configured that takes priority.
   if (rtp.flexfec.payload_type >= 0) {
     RTC_DCHECK_GE(rtp.flexfec.payload_type, 0);
@@ -197,7 +197,7 @@
     FrameEncryptorInterface* frame_encryptor,
     const CryptoOptions& crypto_options,
     rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
-    const WebRtcKeyValueConfig& trials) {
+    const FieldTrialsView& trials) {
   RTC_DCHECK_GT(rtp_config.ssrcs.size(), 0);
 
   RtpRtcpInterface::Configuration configuration;
@@ -359,7 +359,7 @@
     FrameEncryptorInterface* frame_encryptor,
     const CryptoOptions& crypto_options,
     rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
-    const WebRtcKeyValueConfig& field_trials)
+    const FieldTrialsView& field_trials)
     : field_trials_(field_trials),
       send_side_bwe_with_overhead_(!absl::StartsWith(
           field_trials_.Lookup("WebRTC-SendSideBwe-WithOverhead"),
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index 1fa9a8b..c4a2b92 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -21,10 +21,10 @@
 #include "api/call/transport.h"
 #include "api/fec_controller.h"
 #include "api/fec_controller_override.h"
+#include "api/field_trials_view.h"
 #include "api/rtc_event_log/rtc_event_log.h"
 #include "api/sequence_checker.h"
 #include "api/video_codecs/video_encoder.h"
-#include "api/webrtc_key_value_config.h"
 #include "call/rtp_config.h"
 #include "call/rtp_payload_params.h"
 #include "call/rtp_transport_controller_send_interface.h"
@@ -86,7 +86,7 @@
       FrameEncryptorInterface* frame_encryptor,
       const CryptoOptions& crypto_options,  // move inside RtpTransport
       rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
-      const WebRtcKeyValueConfig& field_trials);
+      const FieldTrialsView& field_trials);
   ~RtpVideoSender() override;
 
   RtpVideoSender(const RtpVideoSender&) = delete;
@@ -167,7 +167,7 @@
                                  DataSize overhead_per_packet,
                                  Frequency framerate) const;
 
-  const WebRtcKeyValueConfig& field_trials_;
+  const FieldTrialsView& field_trials_;
   const bool send_side_bwe_with_overhead_;
   const bool use_frame_rate_for_overhead_;
   const bool has_packet_feedback_;
diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc
index 7962ce2..b482b7f 100644
--- a/call/rtp_video_sender_unittest.cc
+++ b/call/rtp_video_sender_unittest.cc
@@ -119,7 +119,7 @@
       const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
       FrameCountObserver* frame_count_observer,
       rtc::scoped_refptr<FrameTransformerInterface> frame_transformer,
-      const WebRtcKeyValueConfig* field_trials = nullptr)
+      const FieldTrialsView* field_trials = nullptr)
       : time_controller_(Timestamp::Millis(1000000)),
         config_(CreateVideoSendStreamConfig(&transport_,
                                             ssrcs,
@@ -162,7 +162,7 @@
       int payload_type,
       const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
       FrameCountObserver* frame_count_observer,
-      const WebRtcKeyValueConfig* field_trials = nullptr)
+      const FieldTrialsView* field_trials = nullptr)
       : RtpVideoSenderTestFixture(ssrcs,
                                   rtx_ssrcs,
                                   payload_type,
@@ -176,7 +176,7 @@
       const std::vector<uint32_t>& rtx_ssrcs,
       int payload_type,
       const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
-      const WebRtcKeyValueConfig* field_trials = nullptr)
+      const FieldTrialsView* field_trials = nullptr)
       : RtpVideoSenderTestFixture(ssrcs,
                                   rtx_ssrcs,
                                   payload_type,