Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit c5f7108

Browse files
Lahiru Ginnaliya GamathigeCommit Bot
authored andcommitted
Reland "Replace sigslot usages with robocaller library."
This is a reland of 40261c3 Note: Instead of changing the type of JsepTransportController->SignalSSLHandshakeError added a new member with a different name and used it in webrtc code. After this change do two more follow up CLs to completely remove the old code from google3. Original change's description: > Replace sigslot usages with robocaller library. > > - Replace all the top level signals from jsep_transport_controller. > - There are still sigslot usages in this file so keep the inheritance > and that is the reason for not having a binary size gain in this CL. > > Bug: webrtc:11943 > Change-Id: I249d3b9710783aef70ba273e082ceeafe3056898 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185540 > Commit-Queue: Lahiru Ginnaliya Gamathige <[email protected]> > Reviewed-by: Mirko Bonadei <[email protected]> > Reviewed-by: Karl Wiberg <[email protected]> > Cr-Commit-Position: refs/heads/master@{#32321} Bug: webrtc:11943 Change-Id: Ia07394ee395f94836f6b576c3a97d119a7678e1a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186946 Commit-Queue: Lahiru Ginnaliya Gamathige <[email protected]> Reviewed-by: Karl Wiberg <[email protected]> Cr-Commit-Position: refs/heads/master@{#32359}
1 parent 0591fbb commit c5f7108

11 files changed

+105
-55
lines changed

p2p/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ rtc_library("rtc_p2p") {
9797
"../logging:ice_log",
9898
"../rtc_base",
9999
"../rtc_base:checks",
100+
"../rtc_base:robo_caller",
100101
"../rtc_base:rtc_numerics",
101102
"../rtc_base/experiments:field_trial_parser",
102103
"../rtc_base/synchronization:sequence_checker",

p2p/base/dtls_transport.cc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "rtc_base/checks.h"
2424
#include "rtc_base/dscp.h"
2525
#include "rtc_base/logging.h"
26+
#include "rtc_base/robo_caller.h"
2627
#include "rtc_base/rtc_certificate.h"
2728
#include "rtc_base/ssl_stream_adapter.h"
2829
#include "rtc_base/stream.h"
@@ -358,8 +359,8 @@ bool DtlsTransport::SetupDtls() {
358359
dtls_->SetMaxProtocolVersion(ssl_max_version_);
359360
dtls_->SetServerRole(*dtls_role_);
360361
dtls_->SignalEvent.connect(this, &DtlsTransport::OnDtlsEvent);
361-
dtls_->SignalSSLHandshakeError.connect(this,
362-
&DtlsTransport::OnDtlsHandshakeError);
362+
dtls_->SSLHandshakeErrorSignal.AddReceiver(
363+
[this](rtc::SSLHandshakeError e) { OnDtlsHandshakeError(e); });
363364
if (remote_fingerprint_value_.size() &&
364365
!dtls_->SetPeerCertificateDigest(
365366
remote_fingerprint_algorithm_,
@@ -821,6 +822,7 @@ void DtlsTransport::set_dtls_state(DtlsTransportState state) {
821822

822823
void DtlsTransport::OnDtlsHandshakeError(rtc::SSLHandshakeError error) {
823824
SignalDtlsHandshakeError(error);
825+
DtlsHandshakeErrorSignal.Send(error);
824826
}
825827

826828
void DtlsTransport::ConfigureHandshakeTimeout() {

p2p/base/dtls_transport_internal.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "p2p/base/ice_transport_internal.h"
2424
#include "p2p/base/packet_transport_internal.h"
2525
#include "rtc_base/constructor_magic.h"
26+
#include "rtc_base/robo_caller.h"
2627
#include "rtc_base/ssl_certificate.h"
2728
#include "rtc_base/ssl_fingerprint.h"
2829
#include "rtc_base/ssl_stream_adapter.h"
@@ -115,7 +116,9 @@ class DtlsTransportInternal : public rtc::PacketTransportInternal {
115116
sigslot::signal2<DtlsTransportInternal*, DtlsTransportState> SignalDtlsState;
116117

117118
// Emitted whenever the Dtls handshake failed on some transport channel.
119+
// TODO(bugs.webrtc.org/11943): Remove sigslot and use one variable.
118120
sigslot::signal1<rtc::SSLHandshakeError> SignalDtlsHandshakeError;
121+
webrtc::RoboCaller<rtc::SSLHandshakeError> DtlsHandshakeErrorSignal;
119122

120123
protected:
121124
DtlsTransportInternal();

pc/jsep_transport_controller.cc

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,8 @@ JsepTransportController::CreateDtlsTransport(
462462
this, &JsepTransportController::OnTransportWritableState_n);
463463
dtls->SignalReceivingState.connect(
464464
this, &JsepTransportController::OnTransportReceivingState_n);
465-
dtls->SignalDtlsHandshakeError.connect(
466-
this, &JsepTransportController::OnDtlsHandshakeError);
465+
dtls->DtlsHandshakeErrorSignal.AddReceiver(
466+
[this](rtc::SSLHandshakeError error) { OnDtlsHandshakeError(error); });
467467
dtls->ice_transport()->SignalGatheringState.connect(
468468
this, &JsepTransportController::OnTransportGatheringState_n);
469469
dtls->ice_transport()->SignalCandidateGathered.connect(
@@ -1154,7 +1154,8 @@ void JsepTransportController::OnTransportCandidateGathered_n(
11541154
std::string transport_name = transport->transport_name();
11551155
invoker_.AsyncInvoke<void>(
11561156
RTC_FROM_HERE, signaling_thread_, [this, transport_name, candidate] {
1157-
SignalIceCandidatesGathered(transport_name, {candidate});
1157+
SignalIceCandidatesGathered.Send(
1158+
transport_name, std::vector<cricket::Candidate>{candidate});
11581159
});
11591160
}
11601161

@@ -1163,20 +1164,21 @@ void JsepTransportController::OnTransportCandidateError_n(
11631164
const cricket::IceCandidateErrorEvent& event) {
11641165
RTC_DCHECK(network_thread_->IsCurrent());
11651166

1166-
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_,
1167-
[this, event] { SignalIceCandidateError(event); });
1167+
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_, [this, event] {
1168+
SignalIceCandidateError.Send(event);
1169+
});
11681170
}
11691171
void JsepTransportController::OnTransportCandidatesRemoved_n(
11701172
cricket::IceTransportInternal* transport,
11711173
const cricket::Candidates& candidates) {
11721174
invoker_.AsyncInvoke<void>(
11731175
RTC_FROM_HERE, signaling_thread_,
1174-
[this, candidates] { SignalIceCandidatesRemoved(candidates); });
1176+
[this, candidates] { SignalIceCandidatesRemoved.Send(candidates); });
11751177
}
11761178
void JsepTransportController::OnTransportCandidatePairChanged_n(
11771179
const cricket::CandidatePairChangeEvent& event) {
11781180
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_, [this, event] {
1179-
SignalIceCandidatePairChanged(event);
1181+
SignalIceCandidatePairChanged.Send(event);
11801182
});
11811183
}
11821184

@@ -1317,14 +1319,14 @@ void JsepTransportController::UpdateAggregateStates_n() {
13171319
PeerConnectionInterface::kIceConnectionCompleted) {
13181320
// Ensure that we never skip over the "connected" state.
13191321
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_, [this] {
1320-
SignalStandardizedIceConnectionState(
1322+
SignalStandardizedIceConnectionState.Send(
13211323
PeerConnectionInterface::kIceConnectionConnected);
13221324
});
13231325
}
13241326
standardized_ice_connection_state_ = new_ice_connection_state;
13251327
invoker_.AsyncInvoke<void>(
13261328
RTC_FROM_HERE, signaling_thread_, [this, new_ice_connection_state] {
1327-
SignalStandardizedIceConnectionState(new_ice_connection_state);
1329+
SignalStandardizedIceConnectionState.Send(new_ice_connection_state);
13281330
});
13291331
}
13301332

@@ -1378,7 +1380,7 @@ void JsepTransportController::UpdateAggregateStates_n() {
13781380
combined_connection_state_ = new_combined_state;
13791381
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_,
13801382
[this, new_combined_state] {
1381-
SignalConnectionState(new_combined_state);
1383+
SignalConnectionState.Send(new_combined_state);
13821384
});
13831385
}
13841386

@@ -1392,10 +1394,10 @@ void JsepTransportController::UpdateAggregateStates_n() {
13921394
}
13931395
if (ice_gathering_state_ != new_gathering_state) {
13941396
ice_gathering_state_ = new_gathering_state;
1395-
invoker_.AsyncInvoke<void>(RTC_FROM_HERE, signaling_thread_,
1396-
[this, new_gathering_state] {
1397-
SignalIceGatheringState(new_gathering_state);
1398-
});
1397+
invoker_.AsyncInvoke<void>(
1398+
RTC_FROM_HERE, signaling_thread_, [this, new_gathering_state] {
1399+
SignalIceGatheringState.Send(new_gathering_state);
1400+
});
13991401
}
14001402
}
14011403

@@ -1408,7 +1410,7 @@ void JsepTransportController::OnRtcpPacketReceived_n(
14081410

14091411
void JsepTransportController::OnDtlsHandshakeError(
14101412
rtc::SSLHandshakeError error) {
1411-
SignalDtlsHandshakeError(error);
1413+
SignalDtlsHandshakeError.Send(error);
14121414
}
14131415

14141416
} // namespace webrtc

pc/jsep_transport_controller.h

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -200,31 +200,29 @@ class JsepTransportController : public sigslot::has_slots<> {
200200
// Else => connecting
201201
RoboCaller<cricket::IceConnectionState> SignalIceConnectionState;
202202

203-
sigslot::signal1<PeerConnectionInterface::PeerConnectionState>
203+
RoboCaller<PeerConnectionInterface::PeerConnectionState>
204204
SignalConnectionState;
205205

206-
sigslot::signal1<PeerConnectionInterface::IceConnectionState>
206+
RoboCaller<PeerConnectionInterface::IceConnectionState>
207207
SignalStandardizedIceConnectionState;
208208

209209
// If all transports done gathering => complete,
210210
// Else if any are gathering => gathering,
211211
// Else => new
212-
sigslot::signal1<cricket::IceGatheringState> SignalIceGatheringState;
212+
RoboCaller<cricket::IceGatheringState> SignalIceGatheringState;
213213

214-
// (mid, candidates)
215-
sigslot::signal2<const std::string&, const std::vector<cricket::Candidate>&>
214+
// [mid, candidates]
215+
RoboCaller<const std::string&, const std::vector<cricket::Candidate>&>
216216
SignalIceCandidatesGathered;
217217

218-
sigslot::signal1<const cricket::IceCandidateErrorEvent&>
219-
SignalIceCandidateError;
218+
RoboCaller<const cricket::IceCandidateErrorEvent&> SignalIceCandidateError;
220219

221-
sigslot::signal1<const std::vector<cricket::Candidate>&>
222-
SignalIceCandidatesRemoved;
220+
RoboCaller<const std::vector<cricket::Candidate>&> SignalIceCandidatesRemoved;
223221

224-
sigslot::signal1<const cricket::CandidatePairChangeEvent&>
222+
RoboCaller<const cricket::CandidatePairChangeEvent&>
225223
SignalIceCandidatePairChanged;
226224

227-
sigslot::signal1<rtc::SSLHandshakeError> SignalDtlsHandshakeError;
225+
RoboCaller<rtc::SSLHandshakeError> SignalDtlsHandshakeError;
228226

229227
private:
230228
RTCError ApplyDescription_n(bool local,

pc/jsep_transport_controller_unittest.cc

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,24 @@ class JsepTransportControllerTest : public JsepTransportController::Observer,
9393
[this](cricket::IceConnectionState s) {
9494
JsepTransportControllerTest::OnConnectionState(s);
9595
});
96-
transport_controller_->SignalStandardizedIceConnectionState.connect(
97-
this, &JsepTransportControllerTest::OnStandardizedIceConnectionState);
98-
transport_controller_->SignalConnectionState.connect(
99-
this, &JsepTransportControllerTest::OnCombinedConnectionState);
100-
transport_controller_->SignalIceGatheringState.connect(
101-
this, &JsepTransportControllerTest::OnGatheringState);
102-
transport_controller_->SignalIceCandidatesGathered.connect(
103-
this, &JsepTransportControllerTest::OnCandidatesGathered);
96+
transport_controller_->SignalConnectionState.AddReceiver(
97+
[this](PeerConnectionInterface::PeerConnectionState s) {
98+
JsepTransportControllerTest::OnCombinedConnectionState(s);
99+
});
100+
transport_controller_->SignalStandardizedIceConnectionState.AddReceiver(
101+
[this](PeerConnectionInterface::IceConnectionState s) {
102+
JsepTransportControllerTest::OnStandardizedIceConnectionState(s);
103+
});
104+
transport_controller_->SignalIceGatheringState.AddReceiver(
105+
[this](cricket::IceGatheringState s) {
106+
JsepTransportControllerTest::OnGatheringState(s);
107+
});
108+
transport_controller_->SignalIceCandidatesGathered.AddReceiver(
109+
[this](const std::string& transport,
110+
const std::vector<cricket::Candidate>& candidates) {
111+
JsepTransportControllerTest::OnCandidatesGathered(transport,
112+
candidates);
113+
});
104114
}
105115

106116
std::unique_ptr<cricket::SessionDescription>

pc/peer_connection.cc

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -545,28 +545,52 @@ bool PeerConnection::Initialize(
545545
transport_controller_.reset(new JsepTransportController(
546546
signaling_thread(), network_thread(), port_allocator_.get(),
547547
async_resolver_factory_.get(), config));
548-
transport_controller_->SignalStandardizedIceConnectionState.connect(
549-
this, &PeerConnection::SetStandardizedIceConnectionState);
550-
transport_controller_->SignalConnectionState.connect(
551-
this, &PeerConnection::SetConnectionState);
552-
transport_controller_->SignalIceGatheringState.connect(
553-
this, &PeerConnection::OnTransportControllerGatheringState);
554-
transport_controller_->SignalIceCandidatesGathered.connect(
555-
this, &PeerConnection::OnTransportControllerCandidatesGathered);
556-
transport_controller_->SignalIceCandidateError.connect(
557-
this, &PeerConnection::OnTransportControllerCandidateError);
558-
transport_controller_->SignalIceCandidatesRemoved.connect(
559-
this, &PeerConnection::OnTransportControllerCandidatesRemoved);
560-
transport_controller_->SignalDtlsHandshakeError.connect(
561-
this, &PeerConnection::OnTransportControllerDtlsHandshakeError);
562-
transport_controller_->SignalIceCandidatePairChanged.connect(
563-
this, &PeerConnection::OnTransportControllerCandidateChanged);
564-
565548
transport_controller_->SignalIceConnectionState.AddReceiver(
566549
[this](cricket::IceConnectionState s) {
567550
RTC_DCHECK_RUN_ON(signaling_thread());
568551
OnTransportControllerConnectionState(s);
569552
});
553+
transport_controller_->SignalConnectionState.AddReceiver(
554+
[this](PeerConnectionInterface::PeerConnectionState s) {
555+
RTC_DCHECK_RUN_ON(signaling_thread());
556+
SetConnectionState(s);
557+
});
558+
transport_controller_->SignalStandardizedIceConnectionState.AddReceiver(
559+
[this](PeerConnectionInterface::IceConnectionState s) {
560+
RTC_DCHECK_RUN_ON(signaling_thread());
561+
SetStandardizedIceConnectionState(s);
562+
});
563+
transport_controller_->SignalIceGatheringState.AddReceiver(
564+
[this](cricket::IceGatheringState s) {
565+
RTC_DCHECK_RUN_ON(signaling_thread());
566+
OnTransportControllerGatheringState(s);
567+
});
568+
transport_controller_->SignalIceCandidatesGathered.AddReceiver(
569+
[this](const std::string& transport,
570+
const std::vector<cricket::Candidate>& candidates) {
571+
RTC_DCHECK_RUN_ON(signaling_thread());
572+
OnTransportControllerCandidatesGathered(transport, candidates);
573+
});
574+
transport_controller_->SignalIceCandidateError.AddReceiver(
575+
[this](const cricket::IceCandidateErrorEvent& event) {
576+
RTC_DCHECK_RUN_ON(signaling_thread());
577+
OnTransportControllerCandidateError(event);
578+
});
579+
transport_controller_->SignalIceCandidatesRemoved.AddReceiver(
580+
[this](const std::vector<cricket::Candidate>& c) {
581+
RTC_DCHECK_RUN_ON(signaling_thread());
582+
OnTransportControllerCandidatesRemoved(c);
583+
});
584+
transport_controller_->SignalIceCandidatePairChanged.AddReceiver(
585+
[this](const cricket::CandidatePairChangeEvent& event) {
586+
RTC_DCHECK_RUN_ON(signaling_thread());
587+
OnTransportControllerCandidateChanged(event);
588+
});
589+
transport_controller_->SignalDtlsHandshakeError.AddReceiver(
590+
[this](rtc::SSLHandshakeError event) {
591+
RTC_DCHECK_RUN_ON(signaling_thread());
592+
OnTransportControllerDtlsHandshakeError(event);
593+
});
570594

571595
stats_.reset(new StatsCollector(this));
572596
stats_collector_ = RTCStatsCollector::Create(this);

rtc_base/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,7 @@ rtc_library("rtc_base") {
816816
deps = [
817817
":checks",
818818
":deprecation",
819+
":robo_caller",
819820
":rtc_task_queue",
820821
":stringutils",
821822
"../api:array_view",

rtc_base/openssl_stream_adapter.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "rtc_base/openssl_adapter.h"
3434
#include "rtc_base/openssl_digest.h"
3535
#include "rtc_base/openssl_identity.h"
36+
#include "rtc_base/robo_caller.h"
3637
#include "rtc_base/ssl_certificate.h"
3738
#include "rtc_base/stream.h"
3839
#include "rtc_base/task_utils/to_queued_task.h"
@@ -931,6 +932,7 @@ int OpenSSLStreamAdapter::ContinueSSL() {
931932
RTC_DLOG(LS_VERBOSE) << " -- error " << code << ", " << err_code << ", "
932933
<< ERR_GET_REASON(err_code);
933934
SignalSSLHandshakeError(ssl_handshake_err);
935+
SSLHandshakeErrorSignal.Send(ssl_handshake_err);
934936
return (ssl_error != 0) ? ssl_error : -1;
935937
}
936938

rtc_base/ssl_stream_adapter.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include "absl/memory/memory.h"
2121
#include "rtc_base/deprecation.h"
22+
#include "rtc_base/robo_caller.h"
2223
#include "rtc_base/ssl_certificate.h"
2324
#include "rtc_base/ssl_identity.h"
2425
#include "rtc_base/stream.h"
@@ -268,7 +269,9 @@ class SSLStreamAdapter : public StreamAdapterInterface {
268269
// authentication.
269270
bool GetClientAuthEnabled() const { return client_auth_enabled_; }
270271

272+
// TODO(bugs.webrtc.org/11943): Remove sigslot and use one variable.
271273
sigslot::signal1<SSLHandshakeError> SignalSSLHandshakeError;
274+
webrtc::RoboCaller<SSLHandshakeError> SSLHandshakeErrorSignal;
272275

273276
private:
274277
// If true (default), the client is required to provide a certificate during

0 commit comments

Comments
 (0)