From: Andreas Pehrson <apehrson@mozilla.com>
Date: Tue, 24 Jun 2025 23:15:00 +0000
Subject: Bug 1972995 - Tag webrtc invocables with location when wrapping them
 as runnables. r=bwc,mjf

This does mainly two things:
- Overrides webrtc::Location with a new class declaration in libwebrtcglue,
  that makes use of __builtin_FUNCTION et al. on supported toolchains.
- Uses the new location info to construct a better name (through nsINamed) to
  tag invocable-wrapped runnables with, for visibility in the profiler.

Differential Revision: https://phabricator.services.mozilla.com/D254341
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/21b860b62cd409a3d7c77f9d56a4d917d72a2434
---
 api/location.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/api/location.h b/api/location.h
index 81e9a15dcc..472de128e1 100644
--- a/api/location.h
+++ b/api/location.h
@@ -11,6 +11,7 @@
 #ifndef API_LOCATION_H_
 #define API_LOCATION_H_
 
+#if !defined(WEBRTC_MOZILLA_BUILD)
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -27,5 +28,12 @@ class RTC_EXPORT Location {
 };
 
 }  // namespace webrtc
+#else
+// Mozilla edit: override
+#include "mozilla/media/webrtc/WebrtcLocation.h"
+namespace webrtc {
+using Location = mozilla::WebrtcLocation;
+}  // namespace webrtc
+#endif
 
 #endif  // API_LOCATION_H_
