Introduce global task queue factory.

Bug: webrtc:10191
Change-Id: I7bdc97fd626da955b9194a9a0d8ed4f5aebddf66
Reviewed-on: https://webrtc-review.googlesource.com/c/118120
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26315}
diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn
index d058291..ee35dab 100644
--- a/api/task_queue/BUILD.gn
+++ b/api/task_queue/BUILD.gn
@@ -34,3 +34,32 @@
     "//third_party/abseil-cpp/absl/strings",
   ]
 }
+
+rtc_source_set("default_task_queue_factory") {
+  # TODO(bugs.webrtc.org/10191): Make public when implemented for all
+  # supported platforms.
+  visibility = [ ":global_task_queue_factory" ]
+  sources = [
+    "default_task_queue_factory.cc",
+    "default_task_queue_factory.h",
+  ]
+  deps = [
+    ":task_queue_factory",
+    "../../rtc_base:checks",
+  ]
+}
+
+rtc_source_set("global_task_queue_factory") {
+  # TODO(danilchap): Remove this target when task queue factory propagated to
+  # all components that create TaskQueues.
+  visibility = [ "*" ]
+  sources = [
+    "global_task_queue_factory.cc",
+    "global_task_queue_factory.h",
+  ]
+  deps = [
+    ":default_task_queue_factory",
+    ":task_queue_factory",
+    "../../rtc_base:checks",
+  ]
+}