Test field trial group with startswith rather than equals.

BUG=webrtc:7266

Review-Url: https://codereview.webrtc.org/2717973005
Cr-Commit-Position: refs/heads/master@{#16915}
diff --git a/webrtc/call/call_perf_tests.cc b/webrtc/call/call_perf_tests.cc
index 570b19b..a510483 100644
--- a/webrtc/call/call_perf_tests.cc
+++ b/webrtc/call/call_perf_tests.cc
@@ -290,7 +290,7 @@
   observer.PrintResults();
 
   // In quick test synchronization may not be achieved in time.
-  if (field_trial::FindFullName("WebRTC-QuickPerfTest") != "Enabled") {
+  if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
     EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AVSyncOffsetInMs"));
   }
 }
diff --git a/webrtc/media/engine/internalencoderfactory.cc b/webrtc/media/engine/internalencoderfactory.cc
index ad3a4be..65c1ba9 100644
--- a/webrtc/media/engine/internalencoderfactory.cc
+++ b/webrtc/media/engine/internalencoderfactory.cc
@@ -24,7 +24,7 @@
 const char kFlexfecFieldTrialName[] = "WebRTC-FlexFEC-03";
 
 bool IsFlexfecFieldTrialEnabled() {
-  return webrtc::field_trial::FindFullName(kFlexfecFieldTrialName) == "Enabled";
+  return webrtc::field_trial::IsEnabled(kFlexfecFieldTrialName);
 }
 
 }  // namespace
diff --git a/webrtc/media/engine/simulcast.cc b/webrtc/media/engine/simulcast.cc
index 8378ca3..f1cd2ce 100644
--- a/webrtc/media/engine/simulcast.cc
+++ b/webrtc/media/engine/simulcast.cc
@@ -299,8 +299,7 @@
 }
 
 bool UseSimulcastScreenshare() {
-  return webrtc::field_trial::FindFullName(
-             kSimulcastScreenshareFieldTrialName) == "Enabled";
+  return webrtc::field_trial::IsEnabled(kSimulcastScreenshareFieldTrialName);
 }
 
 }  // namespace cricket
diff --git a/webrtc/media/engine/webrtcvideocapturer.cc b/webrtc/media/engine/webrtcvideocapturer.cc
index 5aac3f8..11458d1 100644
--- a/webrtc/media/engine/webrtcvideocapturer.cc
+++ b/webrtc/media/engine/webrtcvideocapturer.cc
@@ -230,12 +230,8 @@
   // calls, can't take lock.
   RTC_DCHECK(module_);
 
-  const std::string group_name =
-      webrtc::field_trial::FindFullName("WebRTC-CVO");
-
-  if (group_name == "Disabled") {
+  if (webrtc::field_trial::FindFullName("WebRTC-CVO").find("Disabled") == 0)
     return;
-  }
 
   VideoCapturer::OnSinkWantsChanged(wants);
   bool result = module_->SetApplyRotation(wants.rotation_applied);
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
index c192b52..39bec64 100644
--- a/webrtc/media/engine/webrtcvideoengine2.cc
+++ b/webrtc/media/engine/webrtcvideoengine2.cc
@@ -50,7 +50,7 @@
 const char kFlexfecFieldTrialName[] = "WebRTC-FlexFEC-03";
 
 bool IsFlexfecFieldTrialEnabled() {
-  return webrtc::field_trial::FindFullName(kFlexfecFieldTrialName) == "Enabled";
+  return webrtc::field_trial::IsEnabled(kFlexfecFieldTrialName);
 }
 
 // Wrap cricket::WebRtcVideoEncoderFactory as a webrtc::VideoEncoderFactory.
diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
index e0d9884..d774f78 100644
--- a/webrtc/media/engine/webrtcvoiceengine.cc
+++ b/webrtc/media/engine/webrtcvoiceengine.cc
@@ -982,8 +982,7 @@
   capabilities.header_extensions.push_back(
       webrtc::RtpExtension(webrtc::RtpExtension::kAudioLevelUri,
                            webrtc::RtpExtension::kAudioLevelDefaultId));
-  if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
-      "Enabled") {
+  if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
     capabilities.header_extensions.push_back(webrtc::RtpExtension(
         webrtc::RtpExtension::kTransportSequenceNumberUri,
         webrtc::RtpExtension::kTransportSequenceNumberDefaultId));
@@ -1194,8 +1193,8 @@
       : voe_audio_transport_(voe_audio_transport),
         call_(call),
         config_(send_transport),
-        send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
-            "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+        send_side_bwe_with_overhead_(
+            webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
         max_send_bitrate_bps_(max_send_bitrate_bps),
         rtp_parameters_(CreateRtpParametersWithOneEncoding()) {
     RTC_DCHECK_GE(ch, 0);
@@ -1422,8 +1421,7 @@
       stream_ = nullptr;
     }
     RTC_DCHECK(!stream_);
-    if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
-        "Enabled") {
+    if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
       config_.min_bitrate_bps = kOpusMinBitrateBps;
       config_.max_bitrate_bps = kOpusBitrateFbBps;
       // TODO(mflodman): Keep testing this and set proper values.
diff --git a/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc b/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
index df0b470..d8c74cd 100644
--- a/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
+++ b/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.cc
@@ -51,8 +51,8 @@
     // Current implementation of BitrateController can only work when
     // |metrics.target_audio_bitrate_bps| includes overhead is enabled. This is
     // currently governed by the following field trial.
-    RTC_DCHECK_EQ("Enabled", webrtc::field_trial::FindFullName(
-                                 "WebRTC-SendSideBwe-WithOverhead"));
+    RTC_DCHECK(
+        webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead"));
     if (config->frame_length_ms)
       frame_length_ms_ = *config->frame_length_ms;
     int overhead_rate_bps =
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
index c031756..75655bb 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc
@@ -183,8 +183,8 @@
     const Config& config,
     AudioNetworkAdaptorCreator&& audio_network_adaptor_creator,
     std::unique_ptr<SmoothingFilter> bitrate_smoother)
-    : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
-          "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+    : send_side_bwe_with_overhead_(webrtc::field_trial::IsEnabled(
+          "WebRTC-SendSideBwe-WithOverhead")),
       packet_loss_rate_(0.0),
       inst_(nullptr),
       packet_loss_fraction_smoother_(new PacketLossFractionSmoother(
diff --git a/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc b/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
index 23f43b5..e64def4 100644
--- a/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/test/neteq_performance_unittest.cc
@@ -22,7 +22,7 @@
   const int kLossPeriod = 10;  // Drop every 10th packet.
   const double kDriftFactor = 0.1;
   int64_t runtime = webrtc::test::NetEqPerformanceTest::Run(
-      webrtc::field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled"
+      webrtc::field_trial::IsEnabled("WebRTC-QuickPerfTest")
           ? kQuickSimulationTimeMs
           : kSimulationTimeMs,
       kLossPeriod, kDriftFactor);
@@ -40,7 +40,7 @@
   const int kLossPeriod = 0;  // No losses.
   const double kDriftFactor = 0.0;  // No clock drift.
   int64_t runtime = webrtc::test::NetEqPerformanceTest::Run(
-      webrtc::field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled"
+      webrtc::field_trial::IsEnabled("WebRTC-QuickPerfTest")
           ? kQuickSimulationTimeMs
           : kSimulationTimeMs,
       kLossPeriod, kDriftFactor);
diff --git a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
index 2c683fd..f2338b9 100644
--- a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
+++ b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
@@ -73,8 +73,8 @@
       rampup_uma_stats_updated_(kNumUmaRampupMetrics, false),
       event_log_(event_log),
       last_rtc_event_log_ms_(-1),
-      in_timeout_experiment_(webrtc::field_trial::FindFullName(
-                                 "WebRTC-FeedbackTimeout") == "Enabled") {
+      in_timeout_experiment_(
+          webrtc::field_trial::IsEnabled("WebRTC-FeedbackTimeout")) {
   RTC_DCHECK(event_log);
 }
 
diff --git a/webrtc/modules/congestion_controller/delay_based_bwe.cc b/webrtc/modules/congestion_controller/delay_based_bwe.cc
index 1cba9e6..77fda5a 100644
--- a/webrtc/modules/congestion_controller/delay_based_bwe.cc
+++ b/webrtc/modules/congestion_controller/delay_based_bwe.cc
@@ -57,8 +57,7 @@
 const char kBweMedianSlopeFilterExperiment[] = "WebRTC-BweMedianSlopeFilter";
 
 bool BitrateEstimateExperimentIsEnabled() {
-  return webrtc::field_trial::FindFullName(kBitrateEstimateExperiment) ==
-         "Enabled";
+  return webrtc::field_trial::IsEnabled(kBitrateEstimateExperiment);
 }
 
 bool TrendlineFilterExperimentIsEnabled() {
diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
index fa27cc0..97657d4 100644
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc
@@ -45,9 +45,8 @@
     RtcEventLog* event_log,
     Clock* clock,
     BitrateController* bitrate_controller)
-    : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
-                                       "WebRTC-SendSideBwe-WithOverhead") ==
-                                   "Enabled"),
+    : send_side_bwe_with_overhead_(
+          webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
       transport_overhead_bytes_per_packet_(0),
       send_time_history_(clock, kSendTimeHistoryWindowMs),
       event_log_(event_log),
diff --git a/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc b/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
index 69769f0..6c77212 100644
--- a/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
+++ b/webrtc/modules/remote_bitrate_estimator/bwe_defines.cc
@@ -18,8 +18,7 @@
 int GetMinBitrateBps() {
   constexpr int kAudioMinBitrateBps = 5000;
   constexpr int kMinBitrateBps = 10000;
-  if (webrtc::field_trial::FindFullName("WebRTC-Audio-SendSideBwe") ==
-      "Enabled") {
+  if (webrtc::field_trial::IsEnabled("WebRTC-Audio-SendSideBwe")) {
     return kAudioMinBitrateBps;
   }
   return kMinBitrateBps;
diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
index b243cac..306cac9 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc
@@ -167,7 +167,7 @@
   // TODO(holmer): Support different feedback intervals for different flows.
 
   // For quick perf tests ignore passed timeout
-  if (field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled") {
+  if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
     time_ms = kQuickTestTimeoutMs;
   }
   if (!uplink_.senders().empty()) {
@@ -380,7 +380,7 @@
   PrintResults(capacity_kbps, total_utilization.GetBitrateStats(),
                flow_delay_ms, flow_throughput_kbps);
 
-  if (field_trial::FindFullName("WebRTC-QuickPerfTest") != "Enabled") {
+  if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
     for (int i : all_flow_ids) {
       metric_recorders[i]->PlotThroughputHistogram(
           title, flow_name, static_cast<int>(num_media_flows), 0);
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index 12be6d6..44d6ff8 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -124,8 +124,7 @@
       retransmission_rate_limiter_(retransmission_rate_limiter),
       overhead_observer_(overhead_observer),
       send_side_bwe_with_overhead_(
-          webrtc::field_trial::FindFullName(
-              "WebRTC-SendSideBwe-WithOverhead") == "Enabled") {
+          webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")) {
   // This random initialization is not intended to be cryptographic strong.
   timestamp_offset_ = random_.Rand<uint32_t>();
   // Random start, 16 bits. Can't be 0.
diff --git a/webrtc/pc/peerconnection.cc b/webrtc/pc/peerconnection.cc
index c3ec0b2..48ffebe 100644
--- a/webrtc/pc/peerconnection.cc
+++ b/webrtc/pc/peerconnection.cc
@@ -2510,8 +2510,8 @@
   // by experiment.
   if (configuration.disable_ipv6) {
     portallocator_flags &= ~(cricket::PORTALLOCATOR_ENABLE_IPV6);
-  } else if (webrtc::field_trial::FindFullName("WebRTC-IPv6Default") ==
-             "Disabled") {
+  } else if (webrtc::field_trial::FindFullName("WebRTC-IPv6Default")
+                 .find("Disabled") == 0) {
     portallocator_flags &= ~(cricket::PORTALLOCATOR_ENABLE_IPV6);
   }
 
diff --git a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
index 1a510a5..8fc9e7b 100644
--- a/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
+++ b/webrtc/sdk/android/src/jni/androidmediaencoder_jni.cc
@@ -1298,11 +1298,11 @@
 
 const std::vector<cricket::VideoCodec>&
 MediaCodecVideoEncoderFactory::supported_codecs() const {
-  if (webrtc::field_trial::FindFullName(kH264HighProfileFieldTrial) ==
-      "Enabled")
+  if (webrtc::field_trial::IsEnabled(kH264HighProfileFieldTrial)) {
     return supported_codecs_with_h264_hp_;
-  else
+  } else {
     return supported_codecs_;
+  }
 }
 
 void MediaCodecVideoEncoderFactory::DestroyVideoEncoder(
diff --git a/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc b/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
index 4027399..6fcb182 100644
--- a/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
+++ b/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc
@@ -22,7 +22,7 @@
 const char kHighProfileExperiment[] = "WebRTC-H264HighProfile";
 
 bool IsHighProfileEnabled() {
-  return field_trial::FindFullName(kHighProfileExperiment) == "Enabled";
+  return field_trial::IsEnabled(kHighProfileExperiment);
 }
 }
 
diff --git a/webrtc/system_wrappers/include/field_trial.h b/webrtc/system_wrappers/include/field_trial.h
index 62fbfd1..d649191 100644
--- a/webrtc/system_wrappers/include/field_trial.h
+++ b/webrtc/system_wrappers/include/field_trial.h
@@ -62,6 +62,10 @@
 // Note: To keep things tidy append all the trial names with WebRTC.
 std::string FindFullName(const std::string& name);
 
+// Convenience method, returns true iff FindFullName(name) return a string that
+// starts with "Enabled".
+bool IsEnabled(const char* name);
+
 }  // namespace field_trial
 }  // namespace webrtc
 
diff --git a/webrtc/system_wrappers/source/field_trial_default.cc b/webrtc/system_wrappers/source/field_trial_default.cc
index 0e2c286..e5ed247 100644
--- a/webrtc/system_wrappers/source/field_trial_default.cc
+++ b/webrtc/system_wrappers/source/field_trial_default.cc
@@ -53,6 +53,10 @@
   return std::string();
 }
 
+bool IsEnabled(const char* name) {
+  return FindFullName(name).find("Enabled") == 0;
+}
+
 // Optionally initialize field trial from a string.
 void InitFieldTrialsFromString(const char* trials_string) {
   trials_init_string = trials_string;
diff --git a/webrtc/test/rtp_rtcp_observer.h b/webrtc/test/rtp_rtcp_observer.h
index 4856de7..f3c95a6 100644
--- a/webrtc/test/rtp_rtcp_observer.h
+++ b/webrtc/test/rtp_rtcp_observer.h
@@ -43,7 +43,7 @@
   virtual ~RtpRtcpObserver() {}
 
   virtual bool Wait() {
-    if (field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled") {
+    if (field_trial::IsEnabled("WebRTC-QuickPerfTest")) {
       observation_complete_.Wait(kShortTimeoutMs);
       return true;
     }
diff --git a/webrtc/video/video_quality_test.cc b/webrtc/video/video_quality_test.cc
index 8389cfc..affadc0 100644
--- a/webrtc/video/video_quality_test.cc
+++ b/webrtc/video/video_quality_test.cc
@@ -1441,8 +1441,7 @@
   // abort.
   VideoStream& selected_stream = params_.ss.streams[params_.ss.selected_stream];
 
-  bool is_quick_test_enabled =
-      field_trial::FindFullName("WebRTC-QuickPerfTest") == "Enabled";
+  bool is_quick_test_enabled = field_trial::IsEnabled("WebRTC-QuickPerfTest");
   VideoAnalyzer analyzer(
       &send_transport, params_.analyzer.test_label,
 
diff --git a/webrtc/video/video_send_stream.cc b/webrtc/video/video_send_stream.cc
index 466b5c2..c777ce8 100644
--- a/webrtc/video/video_send_stream.cc
+++ b/webrtc/video/video_send_stream.cc
@@ -757,8 +757,8 @@
     const VideoSendStream::Config* config,
     int initial_encoder_max_bitrate,
     std::map<uint32_t, RtpState> suspended_ssrcs)
-    : send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName(
-            "WebRTC-SendSideBwe-WithOverhead") == "Enabled"),
+    : send_side_bwe_with_overhead_(
+          webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
       stats_proxy_(stats_proxy),
       config_(config),
       suspended_ssrcs_(std::move(suspended_ssrcs)),