Adopt absl::string_view in rtc_base/log_sinks

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

This CL adds absl::string_view versions of the OnLogMessage functions in
rtc::LogSink. The const std::string& versions are kept for now since
downstream clients use subclasses of LogSink and need to be migrated
before these are removed.

Bug: webrtc:13579
Change-Id: I57bb72ad503805ff0ca16f1d7aece2d44c65cb73
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253980
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Owners-Override: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36189}
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 7bc3050..f81d3d5 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -1137,6 +1137,8 @@
       ":native_api_jni",
       "../../rtc_base",
     ]
+
+    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
   }
 
   rtc_library("audio_device_module_base") {
@@ -1620,7 +1622,10 @@
       "../../test:test_support",
       "../../testing/gtest",
     ]
-    absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
+    absl_deps = [
+      "//third_party/abseil-cpp/absl/memory",
+      "//third_party/abseil-cpp/absl/strings",
+    ]
   }
 
   rtc_android_library("native_unittests_java") {
diff --git a/sdk/android/native_unittests/stacktrace/stacktrace_unittest.cc b/sdk/android/native_unittests/stacktrace/stacktrace_unittest.cc
index b77d867..5cbd4aa 100644
--- a/sdk/android/native_unittests/stacktrace/stacktrace_unittest.cc
+++ b/sdk/android/native_unittests/stacktrace/stacktrace_unittest.cc
@@ -16,6 +16,7 @@
 #include <memory>
 #include <vector>
 
+#include "absl/strings/string_view.h"
 #include "rtc_base/event.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/platform_thread.h"
@@ -201,6 +202,9 @@
   explicit LookoutLogSink(std::string look_for)
       : look_for_(std::move(look_for)) {}
   void OnLogMessage(const std::string& message) override {
+    OnLogMessage(absl::string_view(message));
+  }
+  void OnLogMessage(absl::string_view message) override {
     if (message.find(look_for_) != std::string::npos) {
       when_found_.Set();
     }
diff --git a/sdk/android/src/jni/logging/log_sink.cc b/sdk/android/src/jni/logging/log_sink.cc
index cebc866..84394d8 100644
--- a/sdk/android/src/jni/logging/log_sink.cc
+++ b/sdk/android/src/jni/logging/log_sink.cc
@@ -9,6 +9,7 @@
  */
 #include "sdk/android/src/jni/logging/log_sink.h"
 
+#include "absl/strings/string_view.h"
 #include "sdk/android/generated_logging_jni/JNILogging_jni.h"
 
 namespace webrtc {
@@ -18,17 +19,23 @@
     : j_logging_(env, j_logging) {}
 JNILogSink::~JNILogSink() = default;
 
+void JNILogSink::OnLogMessage(const std::string& msg) {
+  RTC_DCHECK_NOTREACHED();
+}
+
 void JNILogSink::OnLogMessage(const std::string& msg,
                               rtc::LoggingSeverity severity,
                               const char* tag) {
-  JNIEnv* env = AttachCurrentThreadIfNeeded();
-  Java_JNILogging_logToInjectable(env, j_logging_, NativeToJavaString(env, msg),
-                                  NativeToJavaInteger(env, severity),
-                                  NativeToJavaString(env, tag));
+  OnLogMessage(absl::string_view{msg}, severity, tag);
 }
 
-void JNILogSink::OnLogMessage(const std::string& msg) {
-  RTC_DCHECK_NOTREACHED();
+void JNILogSink::OnLogMessage(absl::string_view msg,
+                              rtc::LoggingSeverity severity,
+                              const char* tag) {
+  JNIEnv* env = AttachCurrentThreadIfNeeded();
+  Java_JNILogging_logToInjectable(
+      env, j_logging_, NativeToJavaString(env, std::string(msg)),
+      NativeToJavaInteger(env, severity), NativeToJavaString(env, tag));
 }
 
 }  // namespace jni
diff --git a/sdk/android/src/jni/logging/log_sink.h b/sdk/android/src/jni/logging/log_sink.h
index e48b88d..8e681ac 100644
--- a/sdk/android/src/jni/logging/log_sink.h
+++ b/sdk/android/src/jni/logging/log_sink.h
@@ -12,6 +12,7 @@
 
 #include <string>
 
+#include "absl/strings/string_view.h"
 #include "rtc_base/logging.h"
 #include "sdk/android/native_api/jni/java_types.h"
 #include "sdk/android/src/jni/jni_helpers.h"
@@ -24,10 +25,13 @@
   JNILogSink(JNIEnv* env, const JavaRef<jobject>& j_logging);
   ~JNILogSink() override;
 
+  void OnLogMessage(const std::string& msg) override;
   void OnLogMessage(const std::string& msg,
                     rtc::LoggingSeverity severity,
                     const char* tag) override;
-  void OnLogMessage(const std::string& msg) override;
+  void OnLogMessage(absl::string_view msg,
+                    rtc::LoggingSeverity severity,
+                    const char* tag) override;
 
  private:
   const ScopedJavaGlobalRef<jobject> j_logging_;