Intent to implement: RTCRtpSendParameters.transactionId

17 views
Skip to first unread message

Byron Campen

unread,
Apr 21, 2022, 9:20:36 AM4/21/22
to
TL;DR: Currently, Firefox does not enforce the transactionId mechanic in RTCRtpSender.setParameters as specified in webrtc-pc. This means that right now, content code is able to call setParameters without calling getParameters first. However, once transactionId is implemented, this type of code will no longer work.

Spec summary:
https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender-setparameters
https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender-getparameters

webrtc-pc specifies that RTCRtpSender.setParameters and RTCRtpSender.getParameters use RTCRtpSendParameters.transactionId to implement a transaction mechanism. The idea is that content calls getParameters to get the current parameters, which will contain a new unique transactionId. Content then modifies those parameters, and calls setParameters with the modified parameters, which will include the unique transactionId. If the transactionId does not match the value from the most recent call to getParameters, the setParameters call fails with an InvalidModificationError.

Current state:
Currently, our implementation of RTCRtpSender.setParameters does not enforce this transaction mechanic, which allows setParameters to be called with an entirely content-created RTCRtpSendParameters. Any content code that does this will stop working.

Best regards,
Byron Campen
Reply all
Reply to author
Forward
0 new messages