Adopt absl::string_view in function parameters under rtc_base/

This is part of a large-scale effort to increase adoption of
absl::string_view across the WebRTC code base.

This CL converts the majority of "const std::string&"s in function
parameters under rtc_base/ to absl::string_view.

Bug: webrtc:13579
Change-Id: I2b1e3776aa42326aa405f76bb324a2d233b21dca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254081
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Anders Lilienthal <andersc@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36239}
diff --git a/rtc_base/string_utils.h b/rtc_base/string_utils.h
index 1bb9d17..a9cdd61 100644
--- a/rtc_base/string_utils.h
+++ b/rtc_base/string_utils.h
@@ -16,6 +16,8 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "absl/strings/string_view.h"
+
 #if defined(WEBRTC_WIN)
 #include <malloc.h>
 #include <wchar.h>
@@ -30,10 +32,24 @@
 
 #include <string>
 
+#include "absl/strings/string_view.h"
+
 namespace rtc {
 
 const size_t SIZE_UNKNOWN = static_cast<size_t>(-1);
 
+// An absl::string_view comparator functor for use with container types such as
+// std::map that support heterogenous lookup.
+//
+// Example usage:
+// std::map<std::string, int, rtc::AbslStringViewCmp> my_map;
+struct AbslStringViewCmp {
+  using is_transparent = void;
+  bool operator()(absl::string_view a, absl::string_view b) const {
+    return a < b;
+  }
+};
+
 // Safe version of strncpy that always nul-terminate.
 size_t strcpyn(char* buffer,
                size_t buflen,
@@ -57,7 +73,7 @@
   return ws;
 }
 
-inline std::wstring ToUtf16(const std::string& str) {
+inline std::wstring ToUtf16(absl::string_view str) {
   return ToUtf16(str.data(), str.length());
 }