Migrate remaining webrtc usage of TaskQueueBase to absl::AnyInvocable

Bug: webrtc:14245
Change-Id: I8de2c23da5fbdfc0b1efbbe07fb6e8de744424a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268191
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37565}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 546a6d6..c183f5f 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -601,7 +601,6 @@
   deps = [
     ":macromagic",
     "../api/task_queue",
-    "../api/task_queue:to_queued_task",
     "system:rtc_export",
   ]
   absl_deps = [
diff --git a/rtc_base/task_queue.cc b/rtc_base/task_queue.cc
index 0b54178..7c972ed 100644
--- a/rtc_base/task_queue.cc
+++ b/rtc_base/task_queue.cc
@@ -29,26 +29,4 @@
   return impl_->IsCurrent();
 }
 
-void TaskQueue::PostTask(std::unique_ptr<webrtc::QueuedTask> task) {
-  impl_->PostTask(std::move(task));
-}
-
-void TaskQueue::PostDelayedTask(std::unique_ptr<webrtc::QueuedTask> task,
-                                uint32_t milliseconds) {
-  impl_->PostDelayedTask(std::move(task), milliseconds);
-}
-
-void TaskQueue::PostDelayedHighPrecisionTask(
-    std::unique_ptr<webrtc::QueuedTask> task,
-    uint32_t milliseconds) {
-  impl_->PostDelayedHighPrecisionTask(std::move(task), milliseconds);
-}
-
-void TaskQueue::PostDelayedTaskWithPrecision(
-    webrtc::TaskQueueBase::DelayPrecision precision,
-    std::unique_ptr<webrtc::QueuedTask> task,
-    uint32_t milliseconds) {
-  impl_->PostDelayedTaskWithPrecision(precision, std::move(task), milliseconds);
-}
-
 }  // namespace rtc
diff --git a/rtc_base/task_queue.h b/rtc_base/task_queue.h
index b2a08f8..d0c0551 100644
--- a/rtc_base/task_queue.h
+++ b/rtc_base/task_queue.h
@@ -21,7 +21,6 @@
 #include "api/task_queue/queued_task.h"
 #include "api/task_queue/task_queue_base.h"
 #include "api/task_queue/task_queue_factory.h"
-#include "api/task_queue/to_queued_task.h"
 #include "rtc_base/system/rtc_export.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -93,22 +92,17 @@
   webrtc::TaskQueueBase* Get() { return impl_; }
 
   // TODO(tommi): For better debuggability, implement RTC_FROM_HERE.
-
-  // Ownership of the task is passed to PostTask.
-  void PostTask(std::unique_ptr<webrtc::QueuedTask> task);
-  // See webrtc::TaskQueueBase for precision expectations.
-  void PostDelayedTask(std::unique_ptr<webrtc::QueuedTask> task,
-                       uint32_t milliseconds);
-  void PostDelayedHighPrecisionTask(std::unique_ptr<webrtc::QueuedTask> task,
-                                    uint32_t milliseconds);
-  void PostDelayedTaskWithPrecision(
-      webrtc::TaskQueueBase::DelayPrecision precision,
-      std::unique_ptr<webrtc::QueuedTask> task,
-      uint32_t milliseconds);
-
   void PostTask(absl::AnyInvocable<void() &&> task) {
     impl_->PostTask(std::move(task));
   }
+  void PostDelayedTask(absl::AnyInvocable<void() &&> task,
+                       webrtc::TimeDelta delay) {
+    impl_->PostDelayedTask(std::move(task), delay);
+  }
+  void PostDelayedHighPrecisionTask(absl::AnyInvocable<void() &&> task,
+                                    webrtc::TimeDelta delay) {
+    impl_->PostDelayedHighPrecisionTask(std::move(task), delay);
+  }
 
  private:
   webrtc::TaskQueueBase* const impl_;
diff --git a/rtc_base/task_queue_unittest.cc b/rtc_base/task_queue_unittest.cc
index bd07a40..693cd4b 100644
--- a/rtc_base/task_queue_unittest.cc
+++ b/rtc_base/task_queue_unittest.cc
@@ -16,11 +16,13 @@
 #endif
 
 #include <stdint.h>
+
 #include <memory>
 #include <utility>
 #include <vector>
 
 #include "absl/memory/memory.h"
+#include "api/units/time_delta.h"
 #include "rtc_base/event.h"
 #include "rtc_base/task_queue_for_test.h"
 #include "rtc_base/time_utils.h"
@@ -29,6 +31,7 @@
 namespace rtc {
 
 namespace {
+using ::webrtc::TimeDelta;
 // Noop on all platforms except Windows, where it turns on high precision
 // multimedia timers which increases the precision of TimeMillis() while in
 // scope.
@@ -66,9 +69,8 @@
   webrtc::TaskQueueForTest queue(kQueueName, TaskQueue::Priority::HIGH);
 
   uint32_t start = Time();
-  queue.PostDelayedTask(
-      webrtc::ToQueuedTask([&event, &queue] { CheckCurrent(&event, &queue); }),
-      3);
+  queue.PostDelayedTask([&event, &queue] { CheckCurrent(&event, &queue); },
+                        TimeDelta::Millis(3));
   EXPECT_TRUE(event.Wait(1000));
   uint32_t end = TimeMillis();
   // These tests are a little relaxed due to how "powerful" our test bots can