In EmulatedNetworkManager split out rtc::NetworkManager implementation
This way that emulated network may be injected into PeerConnectionFactoryDependencies
and thus would allow test code not to manually create BasicPortAllocator
Bug: webrtc:42232556
Change-Id: Ifac29e584e66d7e585e8c8d74959cba288c6ffe0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376500
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@{#43864}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index c270aad..6b82e90 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -897,11 +897,13 @@
"../rtc_base:network",
"../rtc_base:network_constants",
"../rtc_base:socket_address",
+ "../rtc_base:socket_factory",
"../rtc_base:threading",
"test/network_emulation",
"units:data_rate",
"units:data_size",
"units:timestamp",
+ "//third_party/abseil-cpp/absl/base:nullability",
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
diff --git a/api/test/DEPS b/api/test/DEPS
index 4a51584..02a677e 100644
--- a/api/test/DEPS
+++ b/api/test/DEPS
@@ -20,6 +20,7 @@
"+rtc_base/network_constants.h",
"+rtc_base/ip_address.h",
"+rtc_base/socket_address.h",
+ "+rtc_base/socket_factory.h",
],
"peer_network_dependencies\.h": [
"+rtc_base/network.h",
diff --git a/api/test/network_emulation_manager.h b/api/test/network_emulation_manager.h
index 338e167..8db1099 100644
--- a/api/test/network_emulation_manager.h
+++ b/api/test/network_emulation_manager.h
@@ -19,6 +19,7 @@
#include <utility>
#include <vector>
+#include "absl/base/nullability.h"
#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "api/field_trials_view.h"
@@ -33,6 +34,7 @@
#include "rtc_base/network.h"
#include "rtc_base/network_constants.h"
#include "rtc_base/socket_address.h"
+#include "rtc_base/socket_factory.h"
#include "rtc_base/thread.h"
namespace webrtc {
@@ -129,18 +131,36 @@
public:
virtual ~EmulatedNetworkManagerInterface() = default;
- // Returns non-null pointer to thread that have to be used as network thread
+ // Returns thread that have to be used as network thread
// for WebRTC to properly setup network emulation. Returned thread is owned
// by EmulatedNetworkManagerInterface implementation.
- virtual rtc::Thread* network_thread() = 0;
- // Returns non-null pointer to network manager that have to be injected into
+ virtual absl::Nonnull<rtc::Thread*> network_thread() = 0;
+
+ // Returns network manager that have to be injected into
// WebRTC to properly setup network emulation. Returned manager is owned by
// EmulatedNetworkManagerInterface implementation.
- virtual rtc::NetworkManager* network_manager() = 0;
- // Returns non-null pointer to packet socket factory that have to be injected
+ // Deprecated in favor of injecting NetworkManager into PeerConnectionFactory
+ // instead of creating and injecting BasicPortAllocator into PeerConnection.
+ // TODO: bugs.webrtc.org/42232556 - Cleanup usages of this accessor in WebRTC,
+ // and then deprecate or remove it.
+ virtual absl::Nonnull<rtc::NetworkManager*> network_manager() = 0;
+
+ // Returns packet socket factory that have to be injected
// into WebRTC to properly setup network emulation. Returned factory is owned
// by EmulatedNetworkManagerInterface implementation.
- virtual rtc::PacketSocketFactory* packet_socket_factory() = 0;
+ // Deprecated in favor of injecting SocketFactory into PeerConnectionFactory
+ // instead of creating and injecting BasicPortAllocator into PeerConnection.
+ // TODO: bugs.webrtc.org/42232556 - Cleanup usages of this accessor in WebRTC,
+ // and then deprecate or remove it.
+ virtual absl::Nonnull<rtc::PacketSocketFactory*> packet_socket_factory() = 0;
+
+ // Returns objects to pass to PeerConnectionFactoryDependencies.
+ virtual absl::Nonnull<rtc::SocketFactory*> socket_factory() = 0;
+ 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() {
return {network_thread(), network_manager(), packet_socket_factory()};
}
@@ -349,11 +369,11 @@
virtual void StopCrossTraffic(CrossTrafficGenerator* generator) = 0;
// Creates EmulatedNetworkManagerInterface which can be used then to inject
- // network emulation layer into PeerConnection. `endpoints` - are available
- // network interfaces for PeerConnection. If endpoint is enabled, it will be
- // immediately available for PeerConnection, otherwise user will be able to
- // enable endpoint later to make it available for PeerConnection.
- virtual EmulatedNetworkManagerInterface*
+ // network emulation layer into PeerConnectionFactory. `endpoints` are
+ // available network interfaces for PeerConnection. If endpoint is enabled, it
+ // will be immediately available for PeerConnection, otherwise user will be
+ // able to enable endpoint later to make it available for PeerConnection.
+ virtual absl::Nonnull<EmulatedNetworkManagerInterface*>
CreateEmulatedNetworkManagerInterface(
const std::vector<EmulatedEndpoint*>& endpoints) = 0;
diff --git a/test/DEPS b/test/DEPS
index 72f4c55..2ebbfcd 100644
--- a/test/DEPS
+++ b/test/DEPS
@@ -66,14 +66,10 @@
"+pc",
"+p2p",
],
- ".*peer_connection_quality_test_params\.h": [
- "+p2p/base/port_allocator.h",
- ],
".*network_emulation_pc_unittest\.cc": [
"+p2p/base/port_allocator.h",
"+pc/peer_connection_wrapper.h",
"+pc/test/mock_peer_connection_observers.h",
- "+p2p/client/basic_port_allocator.h",
],
".*peer_connection_quality_test\.(h|cc)": [
"+pc",
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
index 511c02e..8624a3a 100644
--- a/test/network/BUILD.gn
+++ b/test/network/BUILD.gn
@@ -82,12 +82,12 @@
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
"../../rtc_base/task_utils:repeating_task",
- "../../rtc_base/third_party/sigslot",
"../../system_wrappers",
"../scenario:column_printer",
"../time_controller",
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/base:nullability",
+ "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
@@ -106,7 +106,6 @@
"../../api:libjingle_peerconnection_api",
"../../api:media_stream_interface",
"../../api:network_emulation_manager_api",
- "../../api:packet_socket_factory",
"../../api:rtc_error_matchers",
"../../api:scoped_refptr",
"../../api:simulated_network_api",
@@ -115,7 +114,6 @@
"../../api/test/network_emulation",
"../../api/transport:field_trial_based_config",
"../../modules/audio_device:test_audio_device_module",
- "../../p2p:basic_port_allocator",
"../../p2p:port_allocator",
"../../pc:pc_test_utils",
"../../pc:peerconnection_wrapper",
diff --git a/test/network/emulated_network_manager.cc b/test/network/emulated_network_manager.cc
index 1561f8e..ce4a75b 100644
--- a/test/network/emulated_network_manager.cc
+++ b/test/network/emulated_network_manager.cc
@@ -15,35 +15,79 @@
#include <utility>
#include <vector>
+#include "absl/base/nullability.h"
+#include "absl/memory/memory.h"
#include "api/sequence_checker.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/test/network_emulation/network_emulation_interfaces.h"
#include "api/test/time_controller.h"
#include "p2p/base/basic_packet_socket_factory.h"
#include "rtc_base/checks.h"
#include "rtc_base/network.h"
-#include "rtc_base/task_queue_for_test.h"
+#include "rtc_base/thread_annotations.h"
#include "test/network/fake_network_socket_server.h"
#include "test/network/network_emulation.h"
namespace webrtc {
namespace test {
+// Framework assumes that rtc::NetworkManager is called from network thread.
+class EmulatedNetworkManager::NetworkManagerImpl
+ : public rtc::NetworkManagerBase {
+ public:
+ explicit NetworkManagerImpl(
+ absl::Nonnull<rtc::Thread*> network_thread,
+ absl::Nonnull<EndpointsContainer*> endpoints_container)
+ : network_thread_(network_thread),
+ endpoints_container_(endpoints_container) {}
+
+ void StartUpdating() override;
+ void StopUpdating() override;
+
+ void UpdateNetworksOnce();
+ void MaybeSignalNetworksChanged();
+
+ // We don't support any address interfaces in the network emulation framework.
+ std::vector<const rtc::Network*> GetAnyAddressNetworks() override {
+ return {};
+ }
+
+ private:
+ const absl::Nonnull<rtc::Thread*> network_thread_;
+ const absl::Nonnull<const EndpointsContainer*> endpoints_container_;
+ bool sent_first_update_ RTC_GUARDED_BY(network_thread_) = false;
+ int start_count_ RTC_GUARDED_BY(network_thread_) = 0;
+};
+
EmulatedNetworkManager::EmulatedNetworkManager(
TimeController* time_controller,
- TaskQueueForTest* task_queue,
+ TaskQueueBase* task_queue,
EndpointsContainer* endpoints_container)
: task_queue_(task_queue),
endpoints_container_(endpoints_container),
- sent_first_update_(false),
- start_count_(0) {
- auto socket_server =
- std::make_unique<FakeNetworkSocketServer>(endpoints_container);
- packet_socket_factory_ =
- std::make_unique<rtc::BasicPacketSocketFactory>(socket_server.get());
- // Since we pass ownership of the socket server to `network_thread_`, we must
- // arrange that it outlives `packet_socket_factory_` which refers to it.
- network_thread_ =
- time_controller->CreateThread("net_thread", std::move(socket_server));
+ socket_server_(new FakeNetworkSocketServer(endpoints_container)),
+ network_thread_(
+ time_controller->CreateThread("net_thread",
+ absl::WrapUnique(socket_server_))),
+ packet_socket_factory_(socket_server_),
+ network_manager_(
+ std::make_unique<NetworkManagerImpl>(network_thread_.get(),
+ endpoints_container)),
+ network_manager_ptr_(network_manager_.get()) {}
+
+EmulatedNetworkManager::~EmulatedNetworkManager() = default;
+
+rtc::NetworkManager* EmulatedNetworkManager::network_manager() {
+ RTC_CHECK(network_manager_ != nullptr)
+ << "network_manager() can't be used together with ReleaseNetworkManager.";
+ return network_manager_.get();
+}
+
+absl::Nonnull<std::unique_ptr<rtc::NetworkManager>>
+EmulatedNetworkManager::ReleaseNetworkManager() {
+ RTC_CHECK(network_manager_ != nullptr)
+ << "ReleaseNetworkManager can be called at most once.";
+ return std::move(network_manager_);
}
void EmulatedNetworkManager::EnableEndpoint(EmulatedEndpointImpl* endpoint) {
@@ -51,7 +95,7 @@
<< "No such interface: " << endpoint->GetPeerLocalAddress().ToString();
network_thread_->PostTask([this, endpoint]() {
endpoint->Enable();
- UpdateNetworksOnce();
+ network_manager_ptr_->UpdateNetworksOnce();
});
}
@@ -60,16 +104,14 @@
<< "No such interface: " << endpoint->GetPeerLocalAddress().ToString();
network_thread_->PostTask([this, endpoint]() {
endpoint->Disable();
- UpdateNetworksOnce();
+ network_manager_ptr_->UpdateNetworksOnce();
});
}
-// Network manager interface. All these methods are supposed to be called from
-// the same thread.
-void EmulatedNetworkManager::StartUpdating() {
- RTC_DCHECK_RUN_ON(network_thread_.get());
+void EmulatedNetworkManager::NetworkManagerImpl::StartUpdating() {
+ RTC_DCHECK_RUN_ON(network_thread_);
- if (start_count_) {
+ if (start_count_ > 0) {
// If network interfaces are already discovered and signal is sent,
// we should trigger network signal immediately for the new clients
// to start allocating ports.
@@ -81,13 +123,13 @@
++start_count_;
}
-void EmulatedNetworkManager::StopUpdating() {
- RTC_DCHECK_RUN_ON(network_thread_.get());
- if (!start_count_)
+void EmulatedNetworkManager::NetworkManagerImpl::StopUpdating() {
+ RTC_DCHECK_RUN_ON(network_thread_);
+ if (start_count_ == 0)
return;
--start_count_;
- if (!start_count_) {
+ if (start_count_ == 0) {
sent_first_update_ = false;
}
}
@@ -99,8 +141,8 @@
});
}
-void EmulatedNetworkManager::UpdateNetworksOnce() {
- RTC_DCHECK_RUN_ON(network_thread_.get());
+void EmulatedNetworkManager::NetworkManagerImpl::UpdateNetworksOnce() {
+ RTC_DCHECK_RUN_ON(network_thread_);
std::vector<std::unique_ptr<rtc::Network>> networks;
for (std::unique_ptr<rtc::Network>& net :
@@ -117,8 +159,8 @@
}
}
-void EmulatedNetworkManager::MaybeSignalNetworksChanged() {
- RTC_DCHECK_RUN_ON(network_thread_.get());
+void EmulatedNetworkManager::NetworkManagerImpl::MaybeSignalNetworksChanged() {
+ RTC_DCHECK_RUN_ON(network_thread_);
// If manager is stopped we don't need to signal anything.
if (start_count_ == 0) {
return;
diff --git a/test/network/emulated_network_manager.h b/test/network/emulated_network_manager.h
index 3ba12ee..0f507d5 100644
--- a/test/network/emulated_network_manager.h
+++ b/test/network/emulated_network_manager.h
@@ -15,49 +15,45 @@
#include <memory>
#include <vector>
+#include "absl/base/nullability.h"
#include "api/packet_socket_factory.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/test/network_emulation/network_emulation_interfaces.h"
#include "api/test/network_emulation_manager.h"
#include "api/test/time_controller.h"
+#include "p2p/base/basic_packet_socket_factory.h"
#include "rtc_base/network.h"
#include "rtc_base/socket_server.h"
-#include "rtc_base/task_queue_for_test.h"
-#include "rtc_base/third_party/sigslot/sigslot.h"
#include "rtc_base/thread.h"
-#include "rtc_base/thread_annotations.h"
#include "test/network/network_emulation.h"
namespace webrtc {
namespace test {
-// Framework assumes that rtc::NetworkManager is called from network thread.
-class EmulatedNetworkManager : public rtc::NetworkManagerBase,
- public sigslot::has_slots<>,
- public EmulatedNetworkManagerInterface {
+class EmulatedNetworkManager : public EmulatedNetworkManagerInterface {
public:
- EmulatedNetworkManager(TimeController* time_controller,
- TaskQueueForTest* task_queue,
- EndpointsContainer* endpoints_container);
+ EmulatedNetworkManager(
+ absl::Nonnull<TimeController*> time_controller,
+ absl::Nonnull<TaskQueueBase*> task_queue,
+ absl::Nonnull<EndpointsContainer*> endpoints_container);
+ ~EmulatedNetworkManager() override;
- void EnableEndpoint(EmulatedEndpointImpl* endpoint);
- void DisableEndpoint(EmulatedEndpointImpl* endpoint);
+ void EnableEndpoint(absl::Nonnull<EmulatedEndpointImpl*> endpoint);
+ void DisableEndpoint(absl::Nonnull<EmulatedEndpointImpl*> endpoint);
- // NetworkManager interface. All these methods are supposed to be called from
- // the same thread.
- void StartUpdating() override;
- void StopUpdating() override;
-
- // We don't support any address interfaces in the network emulation framework.
- std::vector<const rtc::Network*> GetAnyAddressNetworks() override {
- return {};
+ absl::Nonnull<rtc::Thread*> network_thread() override {
+ return network_thread_.get();
}
-
- // EmulatedNetworkManagerInterface API
- rtc::Thread* network_thread() override { return network_thread_.get(); }
- rtc::NetworkManager* network_manager() override { return this; }
- rtc::PacketSocketFactory* packet_socket_factory() override {
- return packet_socket_factory_.get();
+ absl::Nonnull<rtc::NetworkManager*> network_manager() override;
+ absl::Nonnull<rtc::PacketSocketFactory*> packet_socket_factory() override {
+ return &packet_socket_factory_;
}
+ absl::Nonnull<rtc::SocketFactory*> socket_factory() override {
+ return socket_server_;
+ }
+ absl::Nonnull<std::unique_ptr<rtc::NetworkManager>> ReleaseNetworkManager()
+ override;
+
std::vector<EmulatedEndpoint*> endpoints() const override {
return endpoints_container_->GetEndpoints();
}
@@ -65,19 +61,24 @@
std::function<void(EmulatedNetworkStats)> stats_callback) const override;
private:
- void UpdateNetworksOnce();
- void MaybeSignalNetworksChanged();
+ class NetworkManagerImpl;
- TaskQueueForTest* const task_queue_;
- const EndpointsContainer* const endpoints_container_;
+ const absl::Nonnull<TaskQueueBase*> task_queue_;
+ const absl::Nonnull<const EndpointsContainer*> endpoints_container_;
+
+ // Socket server is owned by the `network_thread_'
+ const absl::Nonnull<rtc::SocketServer*> socket_server_;
+
// The `network_thread_` must outlive `packet_socket_factory_`, because they
- // both refer to a socket server that is owned by `network_thread_`. Both
- // pointers are assigned only in the constructor, but the way they are
- // initialized unfortunately doesn't work with const std::unique_ptr<...>.
- std::unique_ptr<rtc::Thread> network_thread_;
- std::unique_ptr<rtc::PacketSocketFactory> packet_socket_factory_;
- bool sent_first_update_ RTC_GUARDED_BY(network_thread_);
- int start_count_ RTC_GUARDED_BY(network_thread_);
+ // both refer to the `socket_server_` that is owned by `network_thread_`.
+ const absl::Nonnull<std::unique_ptr<rtc::Thread>> network_thread_;
+ rtc::BasicPacketSocketFactory packet_socket_factory_;
+ absl::Nullable<std::unique_ptr<NetworkManagerImpl>> network_manager_;
+
+ // Keep pointer to the network manager when it is extracted to be injected
+ // into PeerConnectionFactory. That is brittle and may crash if a test would
+ // try to use emulated network after related PeerConnectionFactory is deleted.
+ const absl::Nonnull<NetworkManagerImpl*> network_manager_ptr_;
};
} // namespace test
diff --git a/test/network/network_emulation_manager.cc b/test/network/network_emulation_manager.cc
index 35127f6..f520310 100644
--- a/test/network/network_emulation_manager.cc
+++ b/test/network/network_emulation_manager.cc
@@ -19,6 +19,7 @@
#include <utility>
#include <vector>
+#include "absl/base/nullability.h"
#include "api/array_view.h"
#include "api/field_trials_view.h"
#include "api/task_queue/task_queue_factory.h"
@@ -31,6 +32,7 @@
#include "rtc_base/checks.h"
#include "rtc_base/ip_address.h"
#include "rtc_base/strings/string_builder.h"
+#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "test/network/cross_traffic.h"
#include "test/network/emulated_network_manager.h"
@@ -298,7 +300,7 @@
});
}
-EmulatedNetworkManagerInterface*
+absl::Nonnull<EmulatedNetworkManagerInterface*>
NetworkEmulationManagerImpl::CreateEmulatedNetworkManagerInterface(
const std::vector<EmulatedEndpoint*>& endpoints) {
std::vector<EmulatedEndpointImpl*> endpoint_impls;
@@ -309,7 +311,7 @@
auto endpoints_container = std::make_unique<EndpointsContainer>(
endpoint_impls, stats_gathering_mode_);
auto network_manager = std::make_unique<EmulatedNetworkManager>(
- time_controller_.get(), &task_queue_, endpoints_container.get());
+ time_controller_.get(), task_queue_.Get(), endpoints_container.get());
for (auto* endpoint : endpoints) {
// Associate endpoint with network manager.
bool insertion_result =
diff --git a/test/network/network_emulation_manager.h b/test/network/network_emulation_manager.h
index bba9094..850d9e6 100644
--- a/test/network/network_emulation_manager.h
+++ b/test/network/network_emulation_manager.h
@@ -21,6 +21,7 @@
#include <utility>
#include <vector>
+#include "absl/base/nullability.h"
#include "api/array_view.h"
#include "api/test/network_emulation/cross_traffic.h"
#include "api/test/network_emulation/network_emulation_interfaces.h"
@@ -80,7 +81,8 @@
std::unique_ptr<CrossTrafficGenerator> generator) override;
void StopCrossTraffic(CrossTrafficGenerator* generator) override;
- EmulatedNetworkManagerInterface* CreateEmulatedNetworkManagerInterface(
+ absl::Nonnull<EmulatedNetworkManagerInterface*>
+ CreateEmulatedNetworkManagerInterface(
const std::vector<EmulatedEndpoint*>& endpoints) override;
void GetStats(
diff --git a/test/network/network_emulation_pc_unittest.cc b/test/network/network_emulation_pc_unittest.cc
index 298e953..331f7fe 100644
--- a/test/network/network_emulation_pc_unittest.cc
+++ b/test/network/network_emulation_pc_unittest.cc
@@ -16,7 +16,6 @@
#include "api/enable_media_with_defaults.h"
#include "api/jsep.h"
#include "api/media_stream_interface.h"
-#include "api/packet_socket_factory.h"
#include "api/peer_connection_interface.h"
#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/scoped_refptr.h"
@@ -28,7 +27,6 @@
#include "api/transport/field_trial_based_config.h"
#include "modules/audio_device/include/test_audio_device.h"
#include "p2p/base/port_allocator.h"
-#include "p2p/client/basic_port_allocator.h"
#include "pc/peer_connection_wrapper.h"
#include "pc/test/mock_peer_connection_observers.h"
#include "rtc_base/network.h"
@@ -64,13 +62,16 @@
rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory(
rtc::Thread* signaling_thread,
- rtc::Thread* network_thread) {
+ EmulatedNetworkManagerInterface* network) {
PeerConnectionFactoryDependencies pcf_deps;
pcf_deps.task_queue_factory = CreateDefaultTaskQueueFactory();
pcf_deps.event_log_factory = std::make_unique<RtcEventLogFactory>();
- pcf_deps.network_thread = network_thread;
+ pcf_deps.network_thread = network->network_thread();
pcf_deps.signaling_thread = signaling_thread;
pcf_deps.trials = std::make_unique<FieldTrialBasedConfig>();
+ pcf_deps.socket_factory = network->socket_factory();
+ pcf_deps.network_manager = network->ReleaseNetworkManager();
+
pcf_deps.adm = TestAudioDeviceModule::Create(
pcf_deps.task_queue_factory.get(),
TestAudioDeviceModule::CreatePulsedNoiseCapturer(kMaxAptitude,
@@ -84,20 +85,13 @@
rtc::scoped_refptr<PeerConnectionInterface> CreatePeerConnection(
const rtc::scoped_refptr<PeerConnectionFactoryInterface>& pcf,
PeerConnectionObserver* observer,
- rtc::PacketSocketFactory* packet_socket_factory,
- rtc::NetworkManager* network_manager,
EmulatedTURNServerInterface* turn_server = nullptr) {
PeerConnectionDependencies pc_deps(observer);
- auto port_allocator = std::make_unique<cricket::BasicPortAllocator>(
- network_manager, packet_socket_factory);
-
- // This test does not support TCP
- int flags = cricket::PORTALLOCATOR_DISABLE_TCP;
- port_allocator->set_flags(port_allocator->flags() | flags);
-
- pc_deps.allocator = std::move(port_allocator);
PeerConnectionInterface::RTCConfiguration rtc_configuration;
rtc_configuration.sdp_semantics = SdpSemantics::kUnifiedPlan;
+ // This test does not support TCP
+ rtc_configuration.port_allocator_config.flags =
+ cricket::PORTALLOCATOR_DISABLE_TCP;
if (turn_server != nullptr) {
webrtc::PeerConnectionInterface::IceServer server;
server.username = turn_server->GetIceServerConfig().username;
@@ -152,17 +146,12 @@
std::make_unique<MockPeerConnectionObserver>();
SendTask(signaling_thread.get(), [&]() {
- alice_pcf = CreatePeerConnectionFactory(signaling_thread.get(),
- alice_network->network_thread());
- alice_pc = CreatePeerConnection(alice_pcf, alice_observer.get(),
- alice_network->packet_socket_factory(),
- alice_network->network_manager());
+ alice_pcf =
+ CreatePeerConnectionFactory(signaling_thread.get(), alice_network);
+ alice_pc = CreatePeerConnection(alice_pcf, alice_observer.get());
- bob_pcf = CreatePeerConnectionFactory(signaling_thread.get(),
- bob_network->network_thread());
- bob_pc = CreatePeerConnection(bob_pcf, bob_observer.get(),
- bob_network->packet_socket_factory(),
- bob_network->network_manager());
+ bob_pcf = CreatePeerConnectionFactory(signaling_thread.get(), bob_network);
+ bob_pc = CreatePeerConnection(bob_pcf, bob_observer.get());
});
std::unique_ptr<PeerConnectionWrapper> alice =
@@ -267,17 +256,13 @@
std::make_unique<MockPeerConnectionObserver>();
SendTask(signaling_thread.get(), [&]() {
- alice_pcf = CreatePeerConnectionFactory(signaling_thread.get(),
- alice_network->network_thread());
- alice_pc = CreatePeerConnection(
- alice_pcf, alice_observer.get(), alice_network->packet_socket_factory(),
- alice_network->network_manager(), alice_turn);
+ alice_pcf =
+ CreatePeerConnectionFactory(signaling_thread.get(), alice_network);
+ alice_pc =
+ CreatePeerConnection(alice_pcf, alice_observer.get(), alice_turn);
- bob_pcf = CreatePeerConnectionFactory(signaling_thread.get(),
- bob_network->network_thread());
- bob_pc = CreatePeerConnection(bob_pcf, bob_observer.get(),
- bob_network->packet_socket_factory(),
- bob_network->network_manager(), bob_turn);
+ bob_pcf = CreatePeerConnectionFactory(signaling_thread.get(), bob_network);
+ bob_pc = CreatePeerConnection(bob_pcf, bob_observer.get(), bob_turn);
});
std::unique_ptr<PeerConnectionWrapper> alice =