Update peer scenario test helpers to newer emulation network api

To minimize direct construction of BasicPortAllocator, network emulation manager api is changed to push toward injecting network dependencies to PeerConnectionFactory and let it create PortAllocator

Bug: webrtc:42232556
Change-Id: I0c86d797a97d543c2f033286281dc1145d4ef51b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376880
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43872}
diff --git a/test/peer_scenario/BUILD.gn b/test/peer_scenario/BUILD.gn
index 335f7f3..41bcd65 100644
--- a/test/peer_scenario/BUILD.gn
+++ b/test/peer_scenario/BUILD.gn
@@ -26,26 +26,29 @@
       "..:fake_video_codecs",
       "..:fileutils",
       "..:frame_generator_capturer",
+      "..:scoped_key_value_config",
       "..:test_support",
       "../../api:array_view",
+      "../../api:audio_options_api",
       "../../api:candidate",
       "../../api:create_time_controller",
       "../../api:libjingle_peerconnection_api",
+      "../../api:make_ref_counted",
+      "../../api:media_stream_interface",
       "../../api:network_emulation_manager_api",
-      "../../api:rtc_stats_api",
+      "../../api:rtc_error",
       "../../api:scoped_refptr",
       "../../api:sequence_checker",
       "../../api:time_controller",
-      "../../api/audio_codecs:builtin_audio_decoder_factory",
-      "../../api/audio_codecs:builtin_audio_encoder_factory",
       "../../api/environment",
       "../../api/rtc_event_log:rtc_event_log_factory",
-      "../../api/task_queue:default_task_queue_factory",
       "../../api/test/network_emulation",
       "../../api/transport:datagram_transport_interface",
       "../../api/transport:enums",
       "../../api/transport:field_trial_based_config",
+      "../../api/video:video_frame",
       "../../api/video_codecs:scalability_mode",
+      "../../api/video_codecs:video_codecs_api",
       "../../api/video_codecs:video_decoder_factory_template",
       "../../api/video_codecs:video_decoder_factory_template_dav1d_adapter",
       "../../api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
@@ -59,31 +62,33 @@
       "../../call:payload_type_picker",
       "../../call:rtp_interfaces",
       "../../call:rtp_receiver",
-      "../../media:rtc_audio_video",
+      "../../media:media_constants",
       "../../media:rtp_utils",
       "../../modules/audio_device:test_audio_device_module",
       "../../modules/rtp_rtcp:rtp_rtcp_format",
+      "../../p2p:basic_packet_socket_factory",
       "../../p2p:basic_port_allocator",
       "../../p2p:dtls_transport_internal",
       "../../p2p:p2p_constants",
       "../../p2p:port_allocator",
       "../../p2p:transport_description",
-      "../../pc:channel",
       "../../pc:dtls_transport",
       "../../pc:jsep_transport_controller",
       "../../pc:pc_test_utils",
       "../../pc:rtp_transport_internal",
       "../../pc:session_description",
       "../../rtc_base:checks",
+      "../../rtc_base:copy_on_write_buffer",
       "../../rtc_base:crypto_random",
+      "../../rtc_base:logging",
       "../../rtc_base:macromagic",
+      "../../rtc_base:network",
       "../../rtc_base:null_socket_server",
       "../../rtc_base:ssl",
       "../../rtc_base:stringutils",
       "../../rtc_base:task_queue_for_test",
+      "../../rtc_base:threading",
       "../../rtc_base/third_party/sigslot",
-      "../../test:explicit_key_value_config",
-      "../../test:scoped_key_value_config",
       "../logging:log_writer",
       "../network:emulated_network",
       "../scenario",
diff --git a/test/peer_scenario/peer_scenario_client.cc b/test/peer_scenario/peer_scenario_client.cc
index 2a73cf2..5431616 100644
--- a/test/peer_scenario/peer_scenario_client.cc
+++ b/test/peer_scenario/peer_scenario_client.cc
@@ -9,37 +9,68 @@
  */
 #include "test/peer_scenario/peer_scenario_client.h"
 
+#include <cstdint>
+#include <functional>
 #include <limits>
+#include <map>
 #include <memory>
+#include <string>
 #include <utility>
+#include <vector>
 
 #include "absl/container/inlined_vector.h"
 #include "absl/memory/memory.h"
-#include "api/audio_codecs/builtin_audio_decoder_factory.h"
-#include "api/audio_codecs/builtin_audio_encoder_factory.h"
+#include "api/audio_options.h"
+#include "api/candidate.h"
+#include "api/data_channel_interface.h"
 #include "api/environment/environment.h"
+#include "api/jsep.h"
+#include "api/make_ref_counted.h"
+#include "api/media_stream_interface.h"
+#include "api/peer_connection_interface.h"
+#include "api/rtc_error.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
-#include "api/task_queue/default_task_queue_factory.h"
+#include "api/rtp_receiver_interface.h"
+#include "api/rtp_transceiver_interface.h"
+#include "api/scoped_refptr.h"
+#include "api/sequence_checker.h"
+#include "api/set_local_description_observer_interface.h"
+#include "api/set_remote_description_observer_interface.h"
 #include "api/test/create_time_controller.h"
+#include "api/test/network_emulation/network_emulation_interfaces.h"
+#include "api/test/network_emulation_manager.h"
 #include "api/transport/field_trial_based_config.h"
+#include "api/video/video_frame.h"
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
 #include "api/video_codecs/scalability_mode.h"
+#include "api/video_codecs/sdp_video_format.h"
+#include "api/video_codecs/video_decoder.h"
+#include "api/video_codecs/video_decoder_factory.h"
 #include "api/video_codecs/video_decoder_factory_template.h"
 #include "api/video_codecs/video_decoder_factory_template_dav1d_adapter.h"
 #include "api/video_codecs/video_decoder_factory_template_libvpx_vp8_adapter.h"
 #include "api/video_codecs/video_decoder_factory_template_libvpx_vp9_adapter.h"
 #include "api/video_codecs/video_decoder_factory_template_open_h264_adapter.h"
+#include "api/video_codecs/video_encoder.h"
+#include "api/video_codecs/video_encoder_factory.h"
 #include "api/video_codecs/video_encoder_factory_template.h"
 #include "api/video_codecs/video_encoder_factory_template_libaom_av1_adapter.h"
 #include "api/video_codecs/video_encoder_factory_template_libvpx_vp8_adapter.h"
 #include "api/video_codecs/video_encoder_factory_template_libvpx_vp9_adapter.h"
 #include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
-#include "media/engine/webrtc_media_engine.h"
+#include "media/base/media_constants.h"
 #include "modules/audio_device/include/test_audio_device.h"
-#include "p2p/client/basic_port_allocator.h"
+#include "p2p/base/port_allocator.h"
+#include "pc/test/frame_generator_capturer_video_track_source.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/thread.h"
 #include "test/create_frame_generator_capturer.h"
 #include "test/fake_decoder.h"
 #include "test/fake_vp8_encoder.h"
 #include "test/frame_generator_capturer.h"
+#include "test/logging/log_writer.h"
 
 namespace webrtc {
 namespace test {
@@ -252,6 +283,8 @@
   pcf_deps.network_thread = manager->network_thread();
   pcf_deps.signaling_thread = signaling_thread_;
   pcf_deps.worker_thread = worker_thread_.get();
+  pcf_deps.socket_factory = manager->socket_factory();
+  pcf_deps.network_manager = manager->ReleaseNetworkManager();
   pcf_deps.task_queue_factory =
       net->time_controller()->CreateTaskQueueFactory();
   pcf_deps.event_log_factory = std::make_unique<RtcEventLogFactory>();
@@ -293,10 +326,8 @@
   pc_factory_->SetOptions(pc_options);
 
   PeerConnectionDependencies pc_deps(observer_.get());
-  pc_deps.allocator = std::make_unique<cricket::BasicPortAllocator>(
-      manager->network_manager(), manager->packet_socket_factory());
-  pc_deps.allocator->set_flags(pc_deps.allocator->flags() |
-                               cricket::PORTALLOCATOR_DISABLE_TCP);
+  config.rtc_config.port_allocator_config.flags |=
+      cricket::PORTALLOCATOR_DISABLE_TCP;
   peer_connection_ =
       pc_factory_
           ->CreatePeerConnectionOrError(config.rtc_config, std::move(pc_deps))
diff --git a/test/peer_scenario/scenario_connection.cc b/test/peer_scenario/scenario_connection.cc
index 22c52c0..3084994 100644
--- a/test/peer_scenario/scenario_connection.cc
+++ b/test/peer_scenario/scenario_connection.cc
@@ -31,6 +31,7 @@
 #include "call/rtp_packet_sink_interface.h"
 #include "media/base/rtp_utils.h"
 #include "modules/rtp_rtcp/source/rtp_packet_received.h"
+#include "p2p/base/basic_packet_socket_factory.h"
 #include "p2p/base/p2p_constants.h"
 #include "p2p/base/port_allocator.h"
 #include "p2p/base/transport_description.h"
@@ -41,7 +42,9 @@
 #include "pc/rtp_transport_internal.h"
 #include "pc/session_description.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/copy_on_write_buffer.h"
 #include "rtc_base/crypto_random.h"
+#include "rtc_base/network.h"
 #include "rtc_base/rtc_certificate.h"
 #include "rtc_base/ssl_fingerprint.h"
 #include "rtc_base/ssl_identity.h"
@@ -93,6 +96,8 @@
       RTC_GUARDED_BY(network_thread_);
   cricket::TransportDescription const transport_description_
       RTC_GUARDED_BY(signaling_thread_);
+  std::unique_ptr<rtc::NetworkManager> network_manager_;
+  rtc::BasicPacketSocketFactory packet_socket_factory_;
   std::unique_ptr<cricket::BasicPortAllocator> port_allocator_
       RTC_GUARDED_BY(network_thread_);
   PayloadTypePicker payload_type_picker_;
@@ -131,9 +136,11 @@
           cricket::ConnectionRole::CONNECTIONROLE_PASSIVE,
           rtc::SSLFingerprint::CreateFromCertificate(*certificate_.get())
               .get()),
-      port_allocator_(
-          new cricket::BasicPortAllocator(manager_->network_manager(),
-                                          manager_->packet_socket_factory())),
+      network_manager_(manager_->ReleaseNetworkManager()),
+      packet_socket_factory_(manager_->socket_factory()),
+      port_allocator_(std::make_unique<cricket::BasicPortAllocator>(
+          network_manager_.get(),
+          &packet_socket_factory_)),
       jsep_controller_(
           new JsepTransportController(env,
                                       network_thread_,