Bug 1401592 is now in the home stretch, which means these changes will be landing soon. Since these changes seem to break numerous web-conferencing services, these changes will be landing with a compatibility mode that lets a handful of types of error slide, and sends warnings to the JS console instead. These errors include:
- Calling RTCRtpSender.setParameters() when there is not a recent (ie; in the same crank of the event loop) call to RTCRtpSender.getParameters().
- Calling RTCRtpSender.setParameters() with an RTCRtpSendParameters with no transactionId (many web-conferencing services do this).
- Calling RTCRtpSender.setParameters() with a stale RTCRtpSendParameters.transactionId (should be uncommon, but could still happen).
- Calling RTCRtpSender.setParameters() with an RTCRtpSendParameters.encodings array of a different size than currently configured (many web-conferencing services do this).
- Calling RTCRtpSender.setParameters() with an RTCRtpSendParameters.encodings containing an encoding whose rid is different than currently configured (should be uncommon).
For services that have special handling of setParameters() for Firefox, I strongly recommend that you avoid User-Agent sniffing, and instead use feature detection, based on support for RTCRtpTransceiverInit.sendEncodings (which bug 1401592 adds). An example of this can be found in the adapter.js polyfill:
Once bug 1401592 lands, we will be monitoring glean to see how often this compatibility mode is letting these errors slide, and will gradually phase out the use of this compatibility layer based on this data. Because this change brings us roughly in line with what other browsers do, I do not anticipate that web conferencing services will have much difficulty adjusting to the new behavior.
Best regards,
Byron Campen