Open Bug 2073296 Opened 18 days ago

RTC(Dtls|Ice)Transports aren't updated correctly when a transceiver is removed

Categories

(Core :: WebRTC: Signaling, defect, P3)

defect

Tracking

()

People

(Reporter: bwc, Unassigned)

Details

When a transceiver is negotiated away via a disabled m-section, the transport objects are supposed to transition to "closed" in a queued task (queued from the success steps for setting a description, presumably). However, JsepSessionImpl clears the transport id on the JsepTransport when this happens:

https://searchfox.org/firefox-main/source/dom/media/webrtc/jsep/JsepTransport.h#80
https://searchfox.org/firefox-main/source/dom/media/webrtc/jsep/JsepSessionImpl.cpp#1233
https://searchfox.org/firefox-main/source/dom/media/webrtc/jsep/JsepSessionImpl.cpp#927

This leads to the RTCDtlsTransport being unset here:

https://searchfox.org/firefox-main/source/dom/media/webrtc/jsapi/PeerConnectionImpl.cpp#4337-4338,4340,4352

Which in turn prevents that object from being updated at all here:

https://searchfox.org/firefox-main/source/dom/media/webrtc/jsapi/PeerConnectionImpl.cpp#3180

We need some wpt that check the transport is still set, as well as timing verification of the transition to "closed".

You need to log in before you can comment on or make changes to this bug.