Deprecate EmulatedNetworkManagerInterface::network_dependencies

That accessor forces test helpers to create BasicPortAllocator themself
rather than deligate such task to PeerConnectionFactory

Bug: webrtc:42232556
Change-Id: I262e032da110222198e6308f57a5e5f2d7ba4601
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376741
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43870}
diff --git a/api/test/network_emulation_manager.h b/api/test/network_emulation_manager.h
index 8db1099..03a9d2d 100644
--- a/api/test/network_emulation_manager.h
+++ b/api/test/network_emulation_manager.h
@@ -159,9 +159,9 @@
   virtual absl::Nonnull<std::unique_ptr<rtc::NetworkManager>>
   ReleaseNetworkManager() = 0;
 
-  // TODO: bugs.webrtc.org/42232556 - Cleanup usages of this accessor in WebRTC,
-  // and then deprecate or remove it.
-  webrtc::webrtc_pc_e2e::PeerNetworkDependencies network_dependencies() {
+  [[deprecated("bugs.webrtc.org/42232556")]]  //
+  webrtc::webrtc_pc_e2e::PeerNetworkDependencies
+  network_dependencies() {
     return {network_thread(), network_manager(), packet_socket_factory()};
   }
   // Returns list of endpoints that are associated with this instance. Pointers
diff --git a/api/test/pclf/BUILD.gn b/api/test/pclf/BUILD.gn
index e4ae4a5..d296197 100644
--- a/api/test/pclf/BUILD.gn
+++ b/api/test/pclf/BUILD.gn
@@ -98,6 +98,7 @@
     ":media_configuration",
     ":media_quality_test_params",
     "../..:async_dns_resolver",
+    "../..:network_emulation_manager_api",
     "../../../api:create_peer_connection_quality_test_frame_generator",
     "../../../api:fec_controller_api",
     "../../../api:field_trials_view",
diff --git a/api/test/pclf/peer_configurer.cc b/api/test/pclf/peer_configurer.cc
index e608ee8..1002b62 100644
--- a/api/test/pclf/peer_configurer.cc
+++ b/api/test/pclf/peer_configurer.cc
@@ -32,6 +32,7 @@
 #include "api/scoped_refptr.h"
 #include "api/test/create_peer_connection_quality_test_frame_generator.h"
 #include "api/test/frame_generator_interface.h"
+#include "api/test/network_emulation_manager.h"
 #include "api/test/pclf/media_configuration.h"
 #include "api/test/pclf/media_quality_test_params.h"
 #include "api/test/peer_network_dependencies.h"
@@ -55,6 +56,14 @@
       params_(std::make_unique<Params>()),
       configurable_params_(std::make_unique<ConfigurableParams>()) {}
 
+PeerConfigurer::PeerConfigurer(EmulatedNetworkManagerInterface& network)
+    : components_(std::make_unique<InjectableComponents>(
+          network.network_thread(),
+          network.network_manager(),
+          network.packet_socket_factory())),
+      params_(std::make_unique<Params>()),
+      configurable_params_(std::make_unique<ConfigurableParams>()) {}
+
 PeerConfigurer* PeerConfigurer::SetName(absl::string_view name) {
   params_->name = std::string(name);
   return this;
diff --git a/api/test/pclf/peer_configurer.h b/api/test/pclf/peer_configurer.h
index 1cb7c3a..2c83561 100644
--- a/api/test/pclf/peer_configurer.h
+++ b/api/test/pclf/peer_configurer.h
@@ -30,6 +30,7 @@
 #include "api/rtc_event_log/rtc_event_log_factory_interface.h"
 #include "api/scoped_refptr.h"
 #include "api/test/frame_generator_interface.h"
+#include "api/test/network_emulation_manager.h"
 #include "api/test/pclf/media_configuration.h"
 #include "api/test/pclf/media_quality_test_params.h"
 #include "api/test/peer_network_dependencies.h"
@@ -50,7 +51,9 @@
       absl::variant<std::unique_ptr<test::FrameGeneratorInterface>,
                     CapturingDeviceIndex>;
 
-  explicit PeerConfigurer(const PeerNetworkDependencies& network_dependencies);
+  [[deprecated("bugs.webrtc.org/42232556")]] explicit PeerConfigurer(
+      const PeerNetworkDependencies& network_dependencies);
+  explicit PeerConfigurer(EmulatedNetworkManagerInterface& network);
 
   // Sets peer name that will be used to report metrics related to this peer.
   // If not set, some default name will be assigned. All names have to be
diff --git a/pc/test/svc_e2e_tests.cc b/pc/test/svc_e2e_tests.cc
index 332e553..97187af 100644
--- a/pc/test/svc_e2e_tests.cc
+++ b/pc/test/svc_e2e_tests.cc
@@ -71,10 +71,8 @@
   auto fixture = webrtc_pc_e2e::CreatePeerConnectionE2EQualityTestFixture(
       std::string(test_case_name), time_controller, nullptr,
       std::move(video_quality_analyzer));
-  auto alice = std::make_unique<PeerConfigurer>(
-      network_links.first->network_dependencies());
-  auto bob = std::make_unique<PeerConfigurer>(
-      network_links.second->network_dependencies());
+  auto alice = std::make_unique<PeerConfigurer>(*network_links.first);
+  auto bob = std::make_unique<PeerConfigurer>(*network_links.second);
   alice_configurer(alice.get());
   bob_configurer(bob.get());
   fixture->AddPeer(std::move(alice));
diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
index 4144962..e36e4d7 100644
--- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc
+++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
@@ -82,8 +82,7 @@
 
   void AddPeer(EmulatedNetworkManagerInterface* network,
                rtc::FunctionView<void(PeerConfigurer*)> update_configurer) {
-    auto configurer =
-        std::make_unique<PeerConfigurer>(network->network_dependencies());
+    auto configurer = std::make_unique<PeerConfigurer>(*network);
     update_configurer(configurer.get());
     fixture_->AddPeer(std::move(configurer));
   }
diff --git a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
index f86f892..5d5cead 100644
--- a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
@@ -46,17 +46,16 @@
 
 // Adds a peer with some audio and video (the client should not care about
 // details about audio and video configs).
-void AddDefaultAudioVideoPeer(
-    absl::string_view peer_name,
-    absl::string_view audio_stream_label,
-    absl::string_view video_stream_label,
-    const PeerNetworkDependencies& network_dependencies,
-    PeerConnectionE2EQualityTestFixture& fixture) {
+void AddDefaultAudioVideoPeer(absl::string_view peer_name,
+                              absl::string_view audio_stream_label,
+                              absl::string_view video_stream_label,
+                              EmulatedNetworkManagerInterface& network,
+                              PeerConnectionE2EQualityTestFixture& fixture) {
   AudioConfig audio{.stream_label = std::string(audio_stream_label),
                     .sync_group = std::string(peer_name)};
   VideoConfig video(std::string(video_stream_label), 320, 180, 15);
   video.sync_group = std::string(peer_name);
-  auto peer = std::make_unique<PeerConfigurer>(network_dependencies);
+  auto peer = std::make_unique<PeerConfigurer>(network);
   peer->SetName(peer_name);
   peer->SetAudioConfig(std::move(audio));
   peer->AddVideoConfig(std::move(video));
@@ -135,9 +134,9 @@
       network_emulation->CreateEmulatedNetworkManagerInterface({bob_endpoint});
 
   AddDefaultAudioVideoPeer("alice", "alice_audio", "alice_video",
-                           alice_network->network_dependencies(), fixture);
-  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video",
-                           bob_network->network_dependencies(), fixture);
+                           *alice_network, fixture);
+  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video", *bob_network,
+                           fixture);
   fixture.AddQualityMetricsReporter(
       std::make_unique<StatsBasedNetworkQualityMetricsReporter>(
           std::map<std::string, std::vector<EmulatedEndpoint*>>(
@@ -1175,9 +1174,9 @@
       network_emulation->CreateEmulatedNetworkManagerInterface({bob_endpoint});
 
   AddDefaultAudioVideoPeer("alice", "alice_audio", "alice_video",
-                           alice_network->network_dependencies(), fixture);
-  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video",
-                           bob_network->network_dependencies(), fixture);
+                           *alice_network, fixture);
+  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video", *bob_network,
+                           fixture);
   std::string kAliceNetworkLabel = "alice_label";
   std::string kBobNetworkLabel = "bob_label";
   fixture.AddQualityMetricsReporter(
diff --git a/test/pc/e2e/peer_connection_quality_test_test.cc b/test/pc/e2e/peer_connection_quality_test_test.cc
index 87e0c3f..35e299b 100644
--- a/test/pc/e2e/peer_connection_quality_test_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test_test.cc
@@ -116,12 +116,12 @@
 
   VideoConfig alice_video("alice_video", 320, 180, 15);
   alice_video.output_dump_options = VideoDumpOptions(test_directory_);
-  PeerConfigurer alice(alice_network->network_dependencies());
+  PeerConfigurer alice(*alice_network);
   alice.SetName("alice");
   alice.AddVideoConfig(std::move(alice_video));
   fixture.AddPeer(std::make_unique<PeerConfigurer>(std::move(alice)));
 
-  PeerConfigurer bob(bob_network->network_dependencies());
+  PeerConfigurer bob(*bob_network);
   bob.SetName("bob");
   fixture.AddPeer(std::make_unique<PeerConfigurer>(std::move(bob)));
 
diff --git a/test/pc/e2e/stats_based_network_quality_metrics_reporter_test.cc b/test/pc/e2e/stats_based_network_quality_metrics_reporter_test.cc
index 1e423f8..d5ecbe8 100644
--- a/test/pc/e2e/stats_based_network_quality_metrics_reporter_test.cc
+++ b/test/pc/e2e/stats_based_network_quality_metrics_reporter_test.cc
@@ -47,17 +47,16 @@
 
 // Adds a peer with some audio and video (the client should not care about
 // details about audio and video configs).
-void AddDefaultAudioVideoPeer(
-    absl::string_view peer_name,
-    absl::string_view audio_stream_label,
-    absl::string_view video_stream_label,
-    const PeerNetworkDependencies& network_dependencies,
-    PeerConnectionE2EQualityTestFixture& fixture) {
+void AddDefaultAudioVideoPeer(absl::string_view peer_name,
+                              absl::string_view audio_stream_label,
+                              absl::string_view video_stream_label,
+                              EmulatedNetworkManagerInterface& network,
+                              PeerConnectionE2EQualityTestFixture& fixture) {
   AudioConfig audio{.stream_label = std::string(audio_stream_label),
                     .sync_group = std::string(peer_name)};
   VideoConfig video(std::string(video_stream_label), 320, 180, 15);
   video.sync_group = std::string(peer_name);
-  auto peer = std::make_unique<PeerConfigurer>(network_dependencies);
+  auto peer = std::make_unique<PeerConfigurer>(network);
   peer->SetName(peer_name);
   peer->SetAudioConfig(std::move(audio));
   peer->AddVideoConfig(std::move(video));
@@ -108,9 +107,9 @@
       network_emulation->CreateEmulatedNetworkManagerInterface({bob_endpoint});
 
   AddDefaultAudioVideoPeer("alice", "alice_audio", "alice_video",
-                           alice_network->network_dependencies(), fixture);
-  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video",
-                           bob_network->network_dependencies(), fixture);
+                           *alice_network, fixture);
+  AddDefaultAudioVideoPeer("bob", "bob_audio", "bob_video", *bob_network,
+                           fixture);
 
   auto network_stats_reporter =
       std::make_unique<StatsBasedNetworkQualityMetricsReporter>(
diff --git a/video/pc_full_stack_tests.cc b/video/pc_full_stack_tests.cc
index 345d090..c4a053e 100644
--- a/video/pc_full_stack_tests.cc
+++ b/video/pc_full_stack_tests.cc
@@ -60,10 +60,8 @@
   auto fixture = webrtc_pc_e2e::CreatePeerConnectionE2EQualityTestFixture(
       test_case_name, time_controller, /*audio_quality_analyzer=*/nullptr,
       /*video_quality_analyzer=*/nullptr);
-  auto alice = std::make_unique<PeerConfigurer>(
-      network_links.first->network_dependencies());
-  auto bob = std::make_unique<PeerConfigurer>(
-      network_links.second->network_dependencies());
+  auto alice = std::make_unique<PeerConfigurer>(*network_links.first);
+  auto bob = std::make_unique<PeerConfigurer>(*network_links.second);
   alice_configurer(alice.get());
   bob_configurer(bob.get());
   fixture->AddPeer(std::move(alice));