Implement support for Chrome task origin tracing. #3.8/4

This CL forwards TaskQueue locations to the contained
task queue.

Bug: chromium:1416199
Change-Id: I989ae445a67991bf5a857407135dbe8bacbd3c55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/295622
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39446}
diff --git a/rtc_base/task_queue.h b/rtc_base/task_queue.h
index cae9534..e52c49c 100644
--- a/rtc_base/task_queue.h
+++ b/rtc_base/task_queue.h
@@ -90,16 +90,22 @@
   // Returns non-owning pointer to the task queue implementation.
   webrtc::TaskQueueBase* Get() { return impl_; }
 
-  void PostTask(absl::AnyInvocable<void() &&> task) {
-    impl_->PostTask(std::move(task));
+  void PostTask(
+      absl::AnyInvocable<void() &&> task,
+      const webrtc::Location& location = webrtc::Location::Current()) {
+    impl_->PostTask(std::move(task), location);
   }
-  void PostDelayedTask(absl::AnyInvocable<void() &&> task,
-                       webrtc::TimeDelta delay) {
-    impl_->PostDelayedTask(std::move(task), delay);
+  void PostDelayedTask(
+      absl::AnyInvocable<void() &&> task,
+      webrtc::TimeDelta delay,
+      const webrtc::Location& location = webrtc::Location::Current()) {
+    impl_->PostDelayedTask(std::move(task), delay, location);
   }
-  void PostDelayedHighPrecisionTask(absl::AnyInvocable<void() &&> task,
-                                    webrtc::TimeDelta delay) {
-    impl_->PostDelayedHighPrecisionTask(std::move(task), delay);
+  void PostDelayedHighPrecisionTask(
+      absl::AnyInvocable<void() &&> task,
+      webrtc::TimeDelta delay,
+      const webrtc::Location& location = webrtc::Location::Current()) {
+    impl_->PostDelayedHighPrecisionTask(std::move(task), delay, location);
   }
 
  private: