Change the gating of surfacing candidates on ICE transport type change
from a field trial to RTCConfiguration.
The test coverage is also expanded for the underlying feature.
Bug: None
Change-Id: Ic9c1362867e4a956c5453be7a9355083b6a442f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138980
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28143}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index 1994505..a9d9785 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -506,6 +506,17 @@
// re-determining was removed in ICEbis (ICE v2).
bool redetermine_role_on_ice_restart = true;
+ // This flag is only effective when |continual_gathering_policy| is
+ // GATHER_CONTINUALLY.
+ //
+ // If true, after the ICE transport type is changed such that new types of
+ // ICE candidates are allowed by the new transport type, e.g. from
+ // IceTransportsType::kRelay to IceTransportsType::kAll, candidates that
+ // have been gathered by the ICE transport but not matching the previous
+ // transport type and as a result not observed by PeerConnectionObserver,
+ // will be surfaced to the observer.
+ bool surface_ice_candidates_on_ice_transport_type_changed = false;
+
// The following fields define intervals in milliseconds at which ICE
// connectivity checks are sent.
//