Removes Start/Stop on network emulation manager.

Bug: None
Change-Id: I4a1d780d909e9abdd6d09e4da3bec52ca274d36b
Reviewed-on: https://webrtc-review.googlesource.com/c/121950
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26631}
diff --git a/test/pc/e2e/peer_connection_e2e_smoke_test.cc b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
index 6737be1..f0c11f2 100644
--- a/test/pc/e2e/peer_connection_e2e_smoke_test.cc
+++ b/test/pc/e2e/peer_connection_e2e_smoke_test.cc
@@ -66,7 +66,7 @@
       /*output_dump_file_name=*/absl::nullopt, cricket::AudioOptions()};
 
   // Setup emulated network
-  NetworkEmulationManager network_emulation_manager(Clock::GetRealTimeClock());
+  NetworkEmulationManager network_emulation_manager;
 
   EmulatedNetworkNode* alice_node =
       network_emulation_manager.CreateEmulatedNode(
@@ -105,16 +105,12 @@
   auto* video_analyzer = static_cast<ExampleVideoQualityAnalyzer*>(
       analyzers->video_quality_analyzer.get());
 
-  network_emulation_manager.Start();
-
   auto fixture = CreatePeerConnectionE2EQualityTestFixture(
       std::move(alice_components), std::move(alice_params),
       std::move(bob_components), absl::make_unique<Params>(),
       std::move(analyzers));
   fixture->Run(RunParams{TimeDelta::seconds(5)});
 
-  network_emulation_manager.Stop();
-
   RTC_LOG(INFO) << "Captured: " << video_analyzer->frames_captured();
   RTC_LOG(INFO) << "Sent    : " << video_analyzer->frames_sent();
   RTC_LOG(INFO) << "Received: " << video_analyzer->frames_received();
diff --git a/test/scenario/network/network_emulation_manager.cc b/test/scenario/network/network_emulation_manager.cc
index 629f448..489529b 100644
--- a/test/scenario/network/network_emulation_manager.cc
+++ b/test/scenario/network/network_emulation_manager.cc
@@ -25,14 +25,21 @@
 
 }  // namespace
 
-NetworkEmulationManager::NetworkEmulationManager(webrtc::Clock* clock)
-    : clock_(clock),
+NetworkEmulationManager::NetworkEmulationManager()
+    : clock_(Clock::GetRealTimeClock()),
       next_node_id_(1),
-      task_queue_("network_emulation_manager") {}
-NetworkEmulationManager::~NetworkEmulationManager() {
-  Stop();
+      task_queue_("network_emulation_manager") {
+  process_task_handle_ = RepeatingTaskHandle::Start(&task_queue_, [this] {
+    ProcessNetworkPackets();
+    return TimeDelta::ms(kPacketProcessingIntervalMs);
+  });
 }
 
+// TODO(srte): Ensure that any pending task that must be run for consistency
+// (such as stats collection tasks) are not cancelled when the task queue is
+// destroyed.
+NetworkEmulationManager::~NetworkEmulationManager() = default;
+
 EmulatedNetworkNode* NetworkEmulationManager::CreateEmulatedNode(
     std::unique_ptr<NetworkBehaviorInterface> network_behavior) {
   auto node =
@@ -101,17 +108,6 @@
   return out;
 }
 
-void NetworkEmulationManager::Start() {
-  process_task_handle_ = RepeatingTaskHandle::Start(&task_queue_, [this] {
-    ProcessNetworkPackets();
-    return TimeDelta::ms(kPacketProcessingIntervalMs);
-  });
-}
-
-void NetworkEmulationManager::Stop() {
-  process_task_handle_.PostStop();
-}
-
 FakeNetworkSocketServer* NetworkEmulationManager::CreateSocketServer(
     std::vector<EndpointNode*> endpoints) {
   auto socket_server =
diff --git a/test/scenario/network/network_emulation_manager.h b/test/scenario/network/network_emulation_manager.h
index f06fb75..6d42ed7 100644
--- a/test/scenario/network/network_emulation_manager.h
+++ b/test/scenario/network/network_emulation_manager.h
@@ -22,6 +22,7 @@
 #include "rtc_base/task_queue.h"
 #include "rtc_base/task_utils/repeating_task.h"
 #include "rtc_base/thread.h"
+#include "system_wrappers/include/clock.h"
 #include "test/scenario/network/fake_network_socket_server.h"
 #include "test/scenario/network/network_emulation.h"
 
@@ -30,7 +31,7 @@
 
 class NetworkEmulationManager {
  public:
-  explicit NetworkEmulationManager(Clock* clock);
+  NetworkEmulationManager();
   ~NetworkEmulationManager();
 
   EmulatedNetworkNode* CreateEmulatedNode(
@@ -49,9 +50,6 @@
 
   rtc::Thread* CreateNetworkThread(std::vector<EndpointNode*> endpoints);
 
-  void Start();
-  void Stop();
-
  private:
   FakeNetworkSocketServer* CreateSocketServer(
       std::vector<EndpointNode*> endpoints);
diff --git a/test/scenario/network/network_emulation_pc_unittest.cc b/test/scenario/network/network_emulation_pc_unittest.cc
index f2fcb07..d8a2b8a 100644
--- a/test/scenario/network/network_emulation_pc_unittest.cc
+++ b/test/scenario/network/network_emulation_pc_unittest.cc
@@ -102,7 +102,7 @@
   signaling_thread->Start();
 
   // Setup emulated network
-  NetworkEmulationManager network_manager(Clock::GetRealTimeClock());
+  NetworkEmulationManager network_manager;
 
   EmulatedNetworkNode* alice_node = network_manager.CreateEmulatedNode(
       absl::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig()));
@@ -156,8 +156,6 @@
       absl::make_unique<PeerConnectionWrapper>(bob_pcf, bob_pc,
                                                std::move(bob_observer));
 
-  network_manager.Start();
-
   signaling_thread->Invoke<void>(RTC_FROM_HERE, [&]() {
     rtc::scoped_refptr<webrtc::AudioSourceInterface> source =
         alice_pcf->CreateAudioSource(cricket::AudioOptions());
@@ -191,8 +189,6 @@
     alice.reset();
     bob.reset();
   });
-
-  network_manager.Stop();
 }
 
 }  // namespace test
diff --git a/test/scenario/network/network_emulation_unittest.cc b/test/scenario/network/network_emulation_unittest.cc
index d04a99f..c55b412 100644
--- a/test/scenario/network/network_emulation_unittest.cc
+++ b/test/scenario/network/network_emulation_unittest.cc
@@ -58,7 +58,7 @@
 };
 
 TEST(NetworkEmulationManagerTest, Run) {
-  NetworkEmulationManager network_manager(Clock::GetRealTimeClock());
+  NetworkEmulationManager network_manager;
 
   EmulatedNetworkNode* alice_node = network_manager.CreateEmulatedNode(
       absl::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig()));
@@ -74,8 +74,6 @@
   auto* nt1 = network_manager.CreateNetworkThread({alice_endpoint});
   auto* nt2 = network_manager.CreateNetworkThread({bob_endpoint});
 
-  network_manager.Start();
-
   for (uint64_t j = 0; j < 2; j++) {
     auto* s1 = nt1->socketserver()->CreateAsyncSocket(AF_INET, SOCK_DGRAM);
     auto* s2 = nt2->socketserver()->CreateAsyncSocket(AF_INET, SOCK_DGRAM);
@@ -106,8 +104,6 @@
     delete s1;
     delete s2;
   }
-
-  network_manager.Stop();
 }
 
 }  // namespace test