diff options
author | Jonas Oreland <jonaso@webrtc.org> | 2022-03-16 12:21:52 +0100 |
---|---|---|
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-03-16 12:11:34 +0000 |
commit | 7ddc7d548cf7f1a39b7efabd3a06f8162305baee (patch) | |
tree | 0a614f43ab63865b7f2d7a066f1ebed2876fdb97 /p2p | |
parent | 43a69b3f46059b103c35079744dc09a0e2bb2948 (diff) | |
download | webrtc-7ddc7d548cf7f1a39b7efabd3a06f8162305baee.tar.gz |
WebRTC-DeprecateGlobalFieldTrialString/Enabled/ - part 6/inf
This patch just refactors creation of P2P transport channel,
pushing down the IceTransportInit object rather than decomposing
it going down.
The IceTransportInit object will in subsequent patches be
extended with a field trial container.
Reason for splitting patch into this and subsequent is
to allow changes to internal factories.
Bug: webrtc:10335
Change-Id: Icc8b6e4142744b64d134bcb2d4a56777745db62b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/255602
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36215}
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/base/default_ice_transport_factory.cc | 6 | ||||
-rw-r--r-- | p2p/base/p2p_transport_channel.cc | 41 | ||||
-rw-r--r-- | p2p/base/p2p_transport_channel.h | 32 | ||||
-rw-r--r-- | p2p/base/p2p_transport_channel_unittest.cc | 11 |
4 files changed, 52 insertions, 38 deletions
diff --git a/p2p/base/default_ice_transport_factory.cc b/p2p/base/default_ice_transport_factory.cc index 0a7175cfd8..8d87d66697 100644 --- a/p2p/base/default_ice_transport_factory.cc +++ b/p2p/base/default_ice_transport_factory.cc @@ -44,10 +44,10 @@ DefaultIceTransportFactory::CreateIceTransport( int component, IceTransportInit init) { BasicIceControllerFactory factory; + init.set_ice_controller_factory(&factory); return rtc::make_ref_counted<DefaultIceTransport>( - cricket::P2PTransportChannel::Create( - transport_name, component, init.port_allocator(), - init.async_dns_resolver_factory(), init.event_log(), &factory)); + cricket::P2PTransportChannel::Create(transport_name, component, + std::move(init))); } } // namespace webrtc diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc index f95534b3e0..5d7f895b61 100644 --- a/p2p/base/p2p_transport_channel.cc +++ b/p2p/base/p2p_transport_channel.cc @@ -109,18 +109,22 @@ bool IceCredentialsChanged(const std::string& old_ufrag, return (old_ufrag != new_ufrag) || (old_pwd != new_pwd); } -// static std::unique_ptr<P2PTransportChannel> P2PTransportChannel::Create( const std::string& transport_name, int component, - PortAllocator* allocator, - webrtc::AsyncDnsResolverFactoryInterface* async_dns_resolver_factory, - webrtc::RtcEventLog* event_log, - IceControllerFactoryInterface* ice_controller_factory) { - return absl::WrapUnique(new P2PTransportChannel( - transport_name, component, allocator, async_dns_resolver_factory, - /* owned_dns_resolver_factory= */ nullptr, event_log, - ice_controller_factory)); + webrtc::IceTransportInit init) { + if (init.async_resolver_factory()) { + return absl::WrapUnique(new P2PTransportChannel( + transport_name, component, init.port_allocator(), nullptr, + std::make_unique<webrtc::WrappingAsyncDnsResolverFactory>( + init.async_resolver_factory()), + init.event_log(), init.ice_controller_factory())); + } else { + return absl::WrapUnique(new P2PTransportChannel( + transport_name, component, init.port_allocator(), + init.async_dns_resolver_factory(), nullptr, init.event_log(), + init.ice_controller_factory())); + } } P2PTransportChannel::P2PTransportChannel(const std::string& transport_name, @@ -204,25 +208,6 @@ P2PTransportChannel::P2PTransportChannel( } } -// Public constructor, exposed for backwards compatibility. -// Deprecated. -P2PTransportChannel::P2PTransportChannel( - const std::string& transport_name, - int component, - PortAllocator* allocator, - webrtc::AsyncResolverFactory* async_resolver_factory, - webrtc::RtcEventLog* event_log, - IceControllerFactoryInterface* ice_controller_factory) - : P2PTransportChannel( - transport_name, - component, - allocator, - nullptr, - std::make_unique<webrtc::WrappingAsyncDnsResolverFactory>( - async_resolver_factory), - event_log, - ice_controller_factory) {} - P2PTransportChannel::~P2PTransportChannel() { TRACE_EVENT0("webrtc", "P2PTransportChannel::~P2PTransportChannel"); RTC_DCHECK_RUN_ON(network_thread_); diff --git a/p2p/base/p2p_transport_channel.h b/p2p/base/p2p_transport_channel.h index a1c2de04a7..58bd1fb978 100644 --- a/p2p/base/p2p_transport_channel.h +++ b/p2p/base/p2p_transport_channel.h @@ -28,6 +28,7 @@ #include <memory> #include <set> #include <string> +#include <utility> #include <vector> #include "absl/base/attributes.h" @@ -36,12 +37,14 @@ #include "api/async_dns_resolver.h" #include "api/async_resolver_factory.h" #include "api/candidate.h" +#include "api/ice_transport_interface.h" #include "api/rtc_error.h" #include "api/sequence_checker.h" #include "api/transport/enums.h" #include "api/transport/stun.h" #include "logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h" #include "logging/rtc_event_log/ice_logger.h" +#include "p2p/base/basic_async_resolver_factory.h" #include "p2p/base/candidate_pair_interface.h" #include "p2p/base/connection.h" #include "p2p/base/ice_controller_factory_interface.h" @@ -104,15 +107,30 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal { static std::unique_ptr<P2PTransportChannel> Create( const std::string& transport_name, int component, + webrtc::IceTransportInit init); + + // TODO(jonaso): This is deprecated and will be removed. + static std::unique_ptr<P2PTransportChannel> Create( + const std::string& transport_name, + int component, PortAllocator* allocator, webrtc::AsyncDnsResolverFactoryInterface* async_dns_resolver_factory, webrtc::RtcEventLog* event_log = nullptr, - IceControllerFactoryInterface* ice_controller_factory = nullptr); + IceControllerFactoryInterface* ice_controller_factory = nullptr) { + webrtc::IceTransportInit init; + init.set_port_allocator(allocator); + init.set_async_dns_resolver_factory(async_dns_resolver_factory); + init.set_event_log(event_log); + init.set_ice_controller_factory(ice_controller_factory); + return Create(transport_name, component, std::move(init)); + } + // For testing only. // TODO(zstein): Remove once AsyncDnsResolverFactory is required. P2PTransportChannel(const std::string& transport_name, int component, PortAllocator* allocator); + ABSL_DEPRECATED("bugs.webrtc.org/12598") P2PTransportChannel( const std::string& transport_name, @@ -120,7 +138,17 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal { PortAllocator* allocator, webrtc::AsyncResolverFactory* async_resolver_factory, webrtc::RtcEventLog* event_log = nullptr, - IceControllerFactoryInterface* ice_controller_factory = nullptr); + IceControllerFactoryInterface* ice_controller_factory = nullptr) + : P2PTransportChannel( + transport_name, + component, + allocator, + nullptr, + std::make_unique<webrtc::WrappingAsyncDnsResolverFactory>( + async_resolver_factory), + event_log, + ice_controller_factory) {} + ~P2PTransportChannel() override; P2PTransportChannel(const P2PTransportChannel&) = delete; diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc index 79bb2a340c..9acd7b1fa0 100644 --- a/p2p/base/p2p_transport_channel_unittest.cc +++ b/p2p/base/p2p_transport_channel_unittest.cc @@ -6074,11 +6074,12 @@ TEST(P2PTransportChannel, InjectIceController) { MockIceControllerFactory factory; FakePortAllocator pa(rtc::Thread::Current(), nullptr); EXPECT_CALL(factory, RecordIceControllerCreated()).Times(1); - auto dummy = std::make_unique<cricket::P2PTransportChannel>( - "transport_name", - /* component= */ 77, &pa, - /* async_resolver_factory = */ nullptr, - /* event_log = */ nullptr, &factory); + webrtc::IceTransportInit init; + init.set_port_allocator(&pa); + init.set_ice_controller_factory(&factory); + auto dummy = + P2PTransportChannel::Create("transport_name", + /* component= */ 77, std::move(init)); } class ForgetLearnedStateController : public cricket::BasicIceController { |