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(); }