Expose direct access to PeerConnection in PeerConnectionWrapper helper
Multiple derived classes duplcated that code, and one more fixture can benefit from the same direct access to avoid saving reference to port allocator Cleaned includes and build dependencies on the way, in particular left single build target that contains peer_connection_wrapper Bug: webrtc:42232556 Change-Id: Ieb3d5449f3a0285230847716e33fb3b2d1b47882 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/376300 Reviewed-by: Per Kjellander <perkj@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43847}
This commit is contained in:
parent
e828c6dba3
commit
b1ec813339
@ -2241,6 +2241,8 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
]
|
]
|
||||||
deps = [
|
deps = [
|
||||||
":pc_test_utils",
|
":pc_test_utils",
|
||||||
|
":peer_connection",
|
||||||
|
":peer_connection_proxy",
|
||||||
":sdp_utils",
|
":sdp_utils",
|
||||||
"../api:function_view",
|
"../api:function_view",
|
||||||
"../api:libjingle_peerconnection_api",
|
"../api:libjingle_peerconnection_api",
|
||||||
@ -2250,14 +2252,11 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
"../api:rtc_error_matchers",
|
"../api:rtc_error_matchers",
|
||||||
"../api:rtc_stats_api",
|
"../api:rtc_stats_api",
|
||||||
"../api:rtp_parameters",
|
"../api:rtp_parameters",
|
||||||
"../api:rtp_sender_interface",
|
|
||||||
"../api:scoped_refptr",
|
"../api:scoped_refptr",
|
||||||
"../rtc_base:checks",
|
"../rtc_base:checks",
|
||||||
"../rtc_base:gunit_helpers",
|
|
||||||
"../rtc_base:logging",
|
"../rtc_base:logging",
|
||||||
"../test:test_support",
|
"../test:test_support",
|
||||||
"../test:wait_until",
|
"../test:wait_until",
|
||||||
"//testing/gmock",
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2323,8 +2322,6 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
"peer_connection_signaling_unittest.cc",
|
"peer_connection_signaling_unittest.cc",
|
||||||
"peer_connection_simulcast_unittest.cc",
|
"peer_connection_simulcast_unittest.cc",
|
||||||
"peer_connection_svc_integrationtest.cc",
|
"peer_connection_svc_integrationtest.cc",
|
||||||
"peer_connection_wrapper.cc",
|
|
||||||
"peer_connection_wrapper.h",
|
|
||||||
"proxy_unittest.cc",
|
"proxy_unittest.cc",
|
||||||
"rtc_stats_collector_unittest.cc",
|
"rtc_stats_collector_unittest.cc",
|
||||||
"rtc_stats_integrationtest.cc",
|
"rtc_stats_integrationtest.cc",
|
||||||
@ -2366,6 +2363,7 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
":peer_connection_factory",
|
":peer_connection_factory",
|
||||||
":peer_connection_internal",
|
":peer_connection_internal",
|
||||||
":peer_connection_proxy",
|
":peer_connection_proxy",
|
||||||
|
":peerconnection_wrapper",
|
||||||
":proxy",
|
":proxy",
|
||||||
":rtc_stats_collector",
|
":rtc_stats_collector",
|
||||||
":rtc_stats_traversal",
|
":rtc_stats_traversal",
|
||||||
@ -2403,7 +2401,6 @@ if (rtc_include_tests && !build_with_chromium) {
|
|||||||
"../api:fake_frame_encryptor",
|
"../api:fake_frame_encryptor",
|
||||||
"../api:field_trials",
|
"../api:field_trials",
|
||||||
"../api:field_trials_view",
|
"../api:field_trials_view",
|
||||||
"../api:function_view",
|
|
||||||
"../api:ice_transport_interface",
|
"../api:ice_transport_interface",
|
||||||
"../api:libjingle_logging_api",
|
"../api:libjingle_logging_api",
|
||||||
"../api:libjingle_peerconnection_api",
|
"../api:libjingle_peerconnection_api",
|
||||||
|
|||||||
@ -17,7 +17,6 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "api/audio/audio_device.h"
|
|
||||||
#include "api/candidate.h"
|
#include "api/candidate.h"
|
||||||
#include "api/enable_media_with_defaults.h"
|
#include "api/enable_media_with_defaults.h"
|
||||||
#include "api/jsep.h"
|
#include "api/jsep.h"
|
||||||
@ -46,7 +45,6 @@
|
|||||||
#include "p2p/base/transport_info.h"
|
#include "p2p/base/transport_info.h"
|
||||||
#include "pc/channel.h"
|
#include "pc/channel.h"
|
||||||
#include "pc/peer_connection.h"
|
#include "pc/peer_connection.h"
|
||||||
#include "pc/peer_connection_proxy.h"
|
|
||||||
#include "pc/peer_connection_wrapper.h"
|
#include "pc/peer_connection_wrapper.h"
|
||||||
#include "pc/rtp_transceiver.h"
|
#include "pc/rtp_transceiver.h"
|
||||||
#include "pc/rtp_transport_internal.h"
|
#include "pc/rtp_transport_internal.h"
|
||||||
@ -151,13 +149,6 @@ class PeerConnectionWrapperForBundleTest : public PeerConnectionWrapper {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
PeerConnection* GetInternalPeerConnection() {
|
|
||||||
auto* pci =
|
|
||||||
static_cast<PeerConnectionProxyWithInternal<PeerConnectionInterface>*>(
|
|
||||||
pc());
|
|
||||||
return static_cast<PeerConnection*>(pci->internal());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns true if the stats indicate that an ICE connection is either in
|
// Returns true if the stats indicate that an ICE connection is either in
|
||||||
// progress or established with the given remote address.
|
// progress or established with the given remote address.
|
||||||
bool HasConnectionWithRemoteAddress(const SocketAddress& address) {
|
bool HasConnectionWithRemoteAddress(const SocketAddress& address) {
|
||||||
|
|||||||
@ -11,7 +11,6 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <type_traits>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -21,13 +20,9 @@
|
|||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "api/sctp_transport_interface.h"
|
#include "api/sctp_transport_interface.h"
|
||||||
#include "api/task_queue/default_task_queue_factory.h"
|
#include "api/task_queue/default_task_queue_factory.h"
|
||||||
#include "api/task_queue/task_queue_factory.h"
|
|
||||||
#include "api/transport/sctp_transport_factory_interface.h"
|
|
||||||
#include "p2p/base/p2p_constants.h"
|
#include "p2p/base/p2p_constants.h"
|
||||||
#include "p2p/base/port_allocator.h"
|
|
||||||
#include "pc/media_session.h"
|
#include "pc/media_session.h"
|
||||||
#include "pc/peer_connection.h"
|
#include "pc/peer_connection.h"
|
||||||
#include "pc/peer_connection_proxy.h"
|
|
||||||
#include "pc/peer_connection_wrapper.h"
|
#include "pc/peer_connection_wrapper.h"
|
||||||
#include "pc/sctp_transport.h"
|
#include "pc/sctp_transport.h"
|
||||||
#include "pc/sdp_utils.h"
|
#include "pc/sdp_utils.h"
|
||||||
@ -36,15 +31,15 @@
|
|||||||
#include "pc/test/mock_peer_connection_observers.h"
|
#include "pc/test/mock_peer_connection_observers.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/rtc_certificate_generator.h"
|
|
||||||
#include "rtc_base/thread.h"
|
#include "rtc_base/thread.h"
|
||||||
|
#include "rtc_base/virtual_socket_server.h"
|
||||||
#include "test/gmock.h"
|
#include "test/gmock.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
#include "test/pc/sctp/fake_sctp_transport.h"
|
||||||
|
|
||||||
#ifdef WEBRTC_ANDROID
|
#ifdef WEBRTC_ANDROID
|
||||||
#include "pc/test/android_test_initializer.h"
|
#include "pc/test/android_test_initializer.h"
|
||||||
#endif
|
#endif
|
||||||
#include "rtc_base/virtual_socket_server.h"
|
|
||||||
#include "test/pc/sctp/fake_sctp_transport.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
@ -90,13 +85,6 @@ class PeerConnectionWrapperForDataChannelTest : public PeerConnectionWrapper {
|
|||||||
return GetInternalPeerConnection()->sctp_transport_name();
|
return GetInternalPeerConnection()->sctp_transport_name();
|
||||||
}
|
}
|
||||||
|
|
||||||
PeerConnection* GetInternalPeerConnection() {
|
|
||||||
auto* pci =
|
|
||||||
static_cast<PeerConnectionProxyWithInternal<PeerConnectionInterface>*>(
|
|
||||||
pc());
|
|
||||||
return static_cast<PeerConnection*>(pci->internal());
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FakeSctpTransportFactory* sctp_transport_factory_ = nullptr;
|
FakeSctpTransportFactory* sctp_transport_factory_ = nullptr;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -24,11 +24,11 @@
|
|||||||
#include "api/task_queue/default_task_queue_factory.h"
|
#include "api/task_queue/default_task_queue_factory.h"
|
||||||
#include "api/test/mock_async_dns_resolver.h"
|
#include "api/test/mock_async_dns_resolver.h"
|
||||||
#include "api/test/rtc_error_matchers.h"
|
#include "api/test/rtc_error_matchers.h"
|
||||||
|
#include "api/units/time_delta.h"
|
||||||
#include "p2p/base/port_allocator.h"
|
#include "p2p/base/port_allocator.h"
|
||||||
#include "p2p/client/basic_port_allocator.h"
|
#include "p2p/client/basic_port_allocator.h"
|
||||||
#include "pc/peer_connection.h"
|
#include "pc/peer_connection.h"
|
||||||
#include "pc/peer_connection_factory.h"
|
#include "pc/peer_connection_factory.h"
|
||||||
#include "pc/peer_connection_proxy.h"
|
|
||||||
#include "pc/peer_connection_wrapper.h"
|
#include "pc/peer_connection_wrapper.h"
|
||||||
#include "pc/sdp_utils.h"
|
#include "pc/sdp_utils.h"
|
||||||
#include "pc/test/enable_fake_media.h"
|
#include "pc/test/enable_fake_media.h"
|
||||||
@ -125,13 +125,6 @@ class PeerConnectionWrapperForUsageHistogramTest
|
|||||||
public:
|
public:
|
||||||
using PeerConnectionWrapper::PeerConnectionWrapper;
|
using PeerConnectionWrapper::PeerConnectionWrapper;
|
||||||
|
|
||||||
PeerConnection* GetInternalPeerConnection() {
|
|
||||||
auto* pci =
|
|
||||||
static_cast<PeerConnectionProxyWithInternal<PeerConnectionInterface>*>(
|
|
||||||
pc());
|
|
||||||
return static_cast<PeerConnection*>(pci->internal());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Override with different return type
|
// Override with different return type
|
||||||
ObserverForUsageHistogramTest* observer() {
|
ObserverForUsageHistogramTest* observer() {
|
||||||
return static_cast<ObserverForUsageHistogramTest*>(
|
return static_cast<ObserverForUsageHistogramTest*>(
|
||||||
|
|||||||
@ -136,9 +136,6 @@ class PeerConnectionWrapperForIceTest : public PeerConnectionWrapper {
|
|||||||
|
|
||||||
void set_network(rtc::FakeNetworkManager* network) { network_ = network; }
|
void set_network(rtc::FakeNetworkManager* network) { network_ = network; }
|
||||||
|
|
||||||
// The port allocator used by this PC.
|
|
||||||
cricket::PortAllocator* port_allocator_;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
rtc::FakeNetworkManager* network_;
|
rtc::FakeNetworkManager* network_;
|
||||||
};
|
};
|
||||||
@ -182,7 +179,6 @@ class PeerConnectionIceBaseTest : public ::testing::Test {
|
|||||||
RTCConfiguration modified_config = config;
|
RTCConfiguration modified_config = config;
|
||||||
modified_config.sdp_semantics = sdp_semantics_;
|
modified_config.sdp_semantics = sdp_semantics_;
|
||||||
auto observer = std::make_unique<MockPeerConnectionObserver>();
|
auto observer = std::make_unique<MockPeerConnectionObserver>();
|
||||||
auto port_allocator_copy = port_allocator.get();
|
|
||||||
PeerConnectionDependencies pc_dependencies(observer.get());
|
PeerConnectionDependencies pc_dependencies(observer.get());
|
||||||
pc_dependencies.allocator = std::move(port_allocator);
|
pc_dependencies.allocator = std::move(port_allocator);
|
||||||
auto result = pc_factory_->CreatePeerConnectionOrError(
|
auto result = pc_factory_->CreatePeerConnectionOrError(
|
||||||
@ -195,7 +191,6 @@ class PeerConnectionIceBaseTest : public ::testing::Test {
|
|||||||
auto wrapper = std::make_unique<PeerConnectionWrapperForIceTest>(
|
auto wrapper = std::make_unique<PeerConnectionWrapperForIceTest>(
|
||||||
pc_factory_, result.MoveValue(), std::move(observer));
|
pc_factory_, result.MoveValue(), std::move(observer));
|
||||||
wrapper->set_network(fake_network);
|
wrapper->set_network(fake_network);
|
||||||
wrapper->port_allocator_ = port_allocator_copy;
|
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1566,9 +1561,11 @@ TEST_P(PeerConnectionIceTest, IceCredentialsCreateOffer) {
|
|||||||
config.sdp_semantics = SdpSemantics::kUnifiedPlan;
|
config.sdp_semantics = SdpSemantics::kUnifiedPlan;
|
||||||
config.ice_candidate_pool_size = 1;
|
config.ice_candidate_pool_size = 1;
|
||||||
auto pc = CreatePeerConnectionWithAudioVideo(config);
|
auto pc = CreatePeerConnectionWithAudioVideo(config);
|
||||||
ASSERT_NE(pc->port_allocator_, nullptr);
|
ASSERT_NE(pc->GetInternalPeerConnection()->port_allocator(), nullptr);
|
||||||
auto offer = pc->CreateOffer();
|
auto offer = pc->CreateOffer();
|
||||||
auto credentials = pc->port_allocator_->GetPooledIceCredentials();
|
auto credentials = pc->GetInternalPeerConnection()
|
||||||
|
->port_allocator()
|
||||||
|
->GetPooledIceCredentials();
|
||||||
ASSERT_EQ(1u, credentials.size());
|
ASSERT_EQ(1u, credentials.size());
|
||||||
|
|
||||||
auto* desc = offer->description();
|
auto* desc = offer->description();
|
||||||
@ -1584,12 +1581,14 @@ TEST_P(PeerConnectionIceTest, IceCredentialsCreateAnswer) {
|
|||||||
config.sdp_semantics = SdpSemantics::kUnifiedPlan;
|
config.sdp_semantics = SdpSemantics::kUnifiedPlan;
|
||||||
config.ice_candidate_pool_size = 1;
|
config.ice_candidate_pool_size = 1;
|
||||||
auto pc = CreatePeerConnectionWithAudioVideo(config);
|
auto pc = CreatePeerConnectionWithAudioVideo(config);
|
||||||
ASSERT_NE(pc->port_allocator_, nullptr);
|
ASSERT_NE(pc->GetInternalPeerConnection()->port_allocator(), nullptr);
|
||||||
auto offer = pc->CreateOffer();
|
auto offer = pc->CreateOffer();
|
||||||
ASSERT_TRUE(pc->SetRemoteDescription(std::move(offer)));
|
ASSERT_TRUE(pc->SetRemoteDescription(std::move(offer)));
|
||||||
auto answer = pc->CreateAnswer();
|
auto answer = pc->CreateAnswer();
|
||||||
|
|
||||||
auto credentials = pc->port_allocator_->GetPooledIceCredentials();
|
auto credentials = pc->GetInternalPeerConnection()
|
||||||
|
->port_allocator()
|
||||||
|
->GetPooledIceCredentials();
|
||||||
ASSERT_EQ(1u, credentials.size());
|
ASSERT_EQ(1u, credentials.size());
|
||||||
|
|
||||||
auto* desc = answer->description();
|
auto* desc = answer->description();
|
||||||
|
|||||||
@ -51,23 +51,23 @@
|
|||||||
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
|
#include "api/video_codecs/video_encoder_factory_template_open_h264_adapter.h"
|
||||||
#include "media/base/codec.h"
|
#include "media/base/codec.h"
|
||||||
#include "pc/peer_connection.h"
|
#include "pc/peer_connection.h"
|
||||||
#include "pc/peer_connection_proxy.h"
|
|
||||||
#include "pc/peer_connection_wrapper.h"
|
#include "pc/peer_connection_wrapper.h"
|
||||||
#include "pc/sdp_utils.h"
|
#include "pc/sdp_utils.h"
|
||||||
#include "pc/session_description.h"
|
#include "pc/session_description.h"
|
||||||
|
#include "pc/test/fake_audio_capture_module.h"
|
||||||
|
#include "pc/test/fake_rtc_certificate_generator.h"
|
||||||
#include "pc/test/mock_peer_connection_observers.h"
|
#include "pc/test/mock_peer_connection_observers.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/string_encode.h"
|
#include "rtc_base/string_encode.h"
|
||||||
#include "rtc_base/thread.h"
|
#include "rtc_base/thread.h"
|
||||||
|
#include "rtc_base/virtual_socket_server.h"
|
||||||
#include "test/gmock.h"
|
#include "test/gmock.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
#include "test/wait_until.h"
|
#include "test/wait_until.h"
|
||||||
|
|
||||||
#ifdef WEBRTC_ANDROID
|
#ifdef WEBRTC_ANDROID
|
||||||
#include "pc/test/android_test_initializer.h"
|
#include "pc/test/android_test_initializer.h"
|
||||||
#endif
|
#endif
|
||||||
#include "pc/test/fake_audio_capture_module.h"
|
|
||||||
#include "pc/test/fake_rtc_certificate_generator.h"
|
|
||||||
#include "rtc_base/virtual_socket_server.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
@ -90,13 +90,6 @@ class PeerConnectionWrapperForSignalingTest : public PeerConnectionWrapper {
|
|||||||
bool initial_offerer() {
|
bool initial_offerer() {
|
||||||
return GetInternalPeerConnection()->initial_offerer();
|
return GetInternalPeerConnection()->initial_offerer();
|
||||||
}
|
}
|
||||||
|
|
||||||
PeerConnection* GetInternalPeerConnection() {
|
|
||||||
auto* pci =
|
|
||||||
static_cast<PeerConnectionProxyWithInternal<PeerConnectionInterface>*>(
|
|
||||||
pc());
|
|
||||||
return static_cast<PeerConnection*>(pci->internal());
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class ExecuteFunctionOnCreateSessionDescriptionObserver
|
class ExecuteFunctionOnCreateSessionDescriptionObserver
|
||||||
|
|||||||
@ -32,6 +32,8 @@
|
|||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "api/stats/rtc_stats_report.h"
|
#include "api/stats/rtc_stats_report.h"
|
||||||
#include "api/test/rtc_error_matchers.h"
|
#include "api/test/rtc_error_matchers.h"
|
||||||
|
#include "pc/peer_connection.h"
|
||||||
|
#include "pc/peer_connection_proxy.h"
|
||||||
#include "pc/sdp_utils.h"
|
#include "pc/sdp_utils.h"
|
||||||
#include "pc/test/fake_video_track_source.h"
|
#include "pc/test/fake_video_track_source.h"
|
||||||
#include "pc/test/mock_peer_connection_observers.h"
|
#include "pc/test/mock_peer_connection_observers.h"
|
||||||
@ -76,6 +78,13 @@ MockPeerConnectionObserver* PeerConnectionWrapper::observer() {
|
|||||||
return observer_.get();
|
return observer_.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PeerConnection* PeerConnectionWrapper::GetInternalPeerConnection() {
|
||||||
|
auto* pci =
|
||||||
|
static_cast<PeerConnectionProxyWithInternal<PeerConnectionInterface>*>(
|
||||||
|
pc());
|
||||||
|
return static_cast<PeerConnection*>(pci->internal());
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<SessionDescriptionInterface>
|
std::unique_ptr<SessionDescriptionInterface>
|
||||||
PeerConnectionWrapper::CreateOffer() {
|
PeerConnectionWrapper::CreateOffer() {
|
||||||
return CreateOffer(RTCOfferAnswerOptions());
|
return CreateOffer(RTCOfferAnswerOptions());
|
||||||
|
|||||||
@ -28,6 +28,7 @@
|
|||||||
#include "api/rtp_transceiver_interface.h"
|
#include "api/rtp_transceiver_interface.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "api/stats/rtc_stats_report.h"
|
#include "api/stats/rtc_stats_report.h"
|
||||||
|
#include "pc/peer_connection.h"
|
||||||
#include "pc/test/mock_peer_connection_observers.h"
|
#include "pc/test/mock_peer_connection_observers.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
@ -62,6 +63,8 @@ class PeerConnectionWrapper {
|
|||||||
PeerConnectionInterface* pc();
|
PeerConnectionInterface* pc();
|
||||||
MockPeerConnectionObserver* observer();
|
MockPeerConnectionObserver* observer();
|
||||||
|
|
||||||
|
PeerConnection* GetInternalPeerConnection();
|
||||||
|
|
||||||
// Calls the underlying PeerConnection's CreateOffer method and returns the
|
// Calls the underlying PeerConnection's CreateOffer method and returns the
|
||||||
// resulting SessionDescription once it is available. If the method call
|
// resulting SessionDescription once it is available. If the method call
|
||||||
// failed, null is returned.
|
// failed, null is returned.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user