Switch to absl::string_view in field_trial::FindFullName()

Bug: webrtc:13579
Change-Id: Iaaea42957afb4af66ad5eea6447e75dddc13b5ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256263
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36288}
diff --git a/system_wrappers/include/field_trial.h b/system_wrappers/include/field_trial.h
index 48bad41..5256142 100644
--- a/system_wrappers/include/field_trial.h
+++ b/system_wrappers/include/field_trial.h
@@ -13,6 +13,8 @@
 
 #include <string>
 
+#include "absl/strings/string_view.h"
+
 // Field trials allow webrtc clients (such as Chrome) to turn on feature code
 // in binaries out in the field and gather information with that.
 //
@@ -61,7 +63,7 @@
 // if the trial does not exists.
 //
 // Note: To keep things tidy append all the trial names with WebRTC.
-std::string FindFullName(const std::string& name);
+std::string FindFullName(absl::string_view name);
 
 // Convenience method, returns true iff FindFullName(name) return a string that
 // starts with "Enabled".
diff --git a/system_wrappers/source/field_trial.cc b/system_wrappers/source/field_trial.cc
index 8e44790..1eac3dd 100644
--- a/system_wrappers/source/field_trial.cc
+++ b/system_wrappers/source/field_trial.cc
@@ -102,11 +102,11 @@
 }
 
 #ifndef WEBRTC_EXCLUDE_FIELD_TRIAL_DEFAULT
-std::string FindFullName(const std::string& name) {
+std::string FindFullName(absl::string_view name) {
   if (trials_init_string == NULL)
     return std::string();
 
-  std::string trials_string(trials_init_string);
+  absl::string_view trials_string(trials_init_string);
   if (trials_string.empty())
     return std::string();
 
@@ -122,14 +122,14 @@
     if (field_value_end == trials_string.npos ||
         field_value_end == field_name_end + 1)
       break;
-    std::string field_name(trials_string, next_item,
-                           field_name_end - next_item);
-    std::string field_value(trials_string, field_name_end + 1,
-                            field_value_end - field_name_end - 1);
+    absl::string_view field_name =
+        trials_string.substr(next_item, field_name_end - next_item);
+    absl::string_view field_value = trials_string.substr(
+        field_name_end + 1, field_value_end - field_name_end - 1);
     next_item = field_value_end + 1;
 
     if (name == field_name)
-      return field_value;
+      return std::string(field_value);
   }
   return std::string();
 }