Add unsubscribable API for NetworksChanged signal This allows a fix to be applied in Chrome. Bug: webrtc:42222066 Change-Id: Ibda73f3d3598cc60e9e66a43e2df96092fe2255f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/425820 Commit-Queue: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Auto-Submit: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#46201}
diff --git a/rtc_base/network.cc b/rtc_base/network.cc index 000d1bf..36e2ba9 100644 --- a/rtc_base/network.cc +++ b/rtc_base/network.cc
@@ -326,6 +326,16 @@ networks_changed_trampoline_.Subscribe(std::move(callback)); } +void NetworkManager::SubscribeNetworksChanged( + void* tag, + absl::AnyInvocable<void()> callback) { + networks_changed_trampoline_.Subscribe(tag, std::move(callback)); +} + +void NetworkManager::UnsubscribeNetworksChanged(void* tag) { + networks_changed_trampoline_.Unsubscribe(tag); +} + void NetworkManager::SubscribeError(absl::AnyInvocable<void()> callback) { error_trampoline_.Subscribe(std::move(callback)); }
diff --git a/rtc_base/network.h b/rtc_base/network.h index a130d38..9fa26e0 100644 --- a/rtc_base/network.h +++ b/rtc_base/network.h
@@ -195,6 +195,8 @@ // The implementation of the Subscribe methods is in the .cc file due // to linking issues with Chrome. void SubscribeNetworksChanged(absl::AnyInvocable<void()> callback); + void SubscribeNetworksChanged(void* tag, absl::AnyInvocable<void()> callback); + void UnsubscribeNetworksChanged(void* tag); void NotifyNetworksChanged() { SignalNetworksChanged(); } void SubscribeError(absl::AnyInvocable<void()> callback); void NotifyError() { SignalError(); }