Move TaskQueueFactory ownership into Environment

Now that it is used through the environment both for creating MediaEngine and for creating Calls.

Bug: webrtc:15656
Change-Id: Ib95ee46fe08d9d1ed1ef96bd67189e98052599ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329202
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41286}
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index e73213f..8540611 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -1530,7 +1530,6 @@
     "../api/metronome",
     "../api/neteq:neteq_api",
     "../api/rtc_event_log:rtc_event_log",
-    "../api/task_queue:task_queue",
     "../api/transport:bitrate_settings",
     "../api/transport:network_control",
     "../api/transport:sctp_transport_factory_interface",
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index ab0bc24..8c45c89 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -80,12 +80,9 @@
 // Static
 rtc::scoped_refptr<PeerConnectionFactory> PeerConnectionFactory::Create(
     PeerConnectionFactoryDependencies dependencies) {
-  // TODO(bugs.webrtc.org/15656): Move task_queue_factory into environment with
-  // ownership when MediaFactory::CreateMedia would use it from the
-  // Environment instead of the PeerConnectionFactoryDependencies.
   auto context = ConnectionContext::Create(
       CreateEnvironment(std::move(dependencies.trials),
-                        dependencies.task_queue_factory.get()),
+                        std::move(dependencies.task_queue_factory)),
       &dependencies);
   if (!context) {
     return nullptr;
@@ -97,7 +94,6 @@
     rtc::scoped_refptr<ConnectionContext> context,
     PeerConnectionFactoryDependencies* dependencies)
     : context_(context),
-      task_queue_factory_(std::move(dependencies->task_queue_factory)),
       event_log_factory_(std::move(dependencies->event_log_factory)),
       fec_controller_factory_(std::move(dependencies->fec_controller_factory)),
       network_state_predictor_factory_(
@@ -111,15 +107,12 @@
               : std::make_unique<RtpTransportControllerSendFactory>()),
       metronome_(std::move(dependencies->metronome)) {}
 
-// TODO(bugs.webrtc.org/15656): Move task_queue_factory into environment with
-// ownership when MediaFactory::CreateMedia would use it from the
-// Environment instead of the PeerConnectionFactoryDependencies.
 PeerConnectionFactory::PeerConnectionFactory(
     PeerConnectionFactoryDependencies dependencies)
     : PeerConnectionFactory(
           ConnectionContext::Create(
               CreateEnvironment(std::move(dependencies.trials),
-                                dependencies.task_queue_factory.get()),
+                                std::move(dependencies.task_queue_factory)),
               &dependencies),
           &dependencies) {}
 
diff --git a/pc/peer_connection_factory.h b/pc/peer_connection_factory.h
index 5e652a7..c3760c0 100644
--- a/pc/peer_connection_factory.h
+++ b/pc/peer_connection_factory.h
@@ -33,7 +33,6 @@
 #include "api/rtp_parameters.h"
 #include "api/scoped_refptr.h"
 #include "api/sequence_checker.h"
-#include "api/task_queue/task_queue_factory.h"
 #include "api/transport/network_control.h"
 #include "api/transport/sctp_transport_factory_interface.h"
 #include "call/call.h"
@@ -139,7 +138,6 @@
   rtc::scoped_refptr<ConnectionContext> context_;
   PeerConnectionFactoryInterface::Options options_
       RTC_GUARDED_BY(signaling_thread());
-  std::unique_ptr<TaskQueueFactory> task_queue_factory_;
   std::unique_ptr<RtcEventLogFactoryInterface> event_log_factory_;
   std::unique_ptr<FecControllerFactoryInterface> fec_controller_factory_;
   std::unique_ptr<NetworkStatePredictorFactoryInterface>