- From: Jan-Ivar Bruaroey via GitHub <sysbot+gh@w3.org>
- Date: Fri, 09 Dec 2022 22:22:39 +0000
- To: public-webrtc@w3.org
jan-ivar has just created a new issue for https://github.com/w3c/webrtc-extensions: == FrozenArray on headerExtensionsToOffer a mistake, wrong semantics == With no explainer or examples showing how `headerExtensionsToOffer` is meant to be used, it's a bit unclear what its requirements are. But https://github.com/w3c/webrtc-extensions/issues/130#issuecomment-1338005567 suggests at least two possible uses I arrived at without any guidance: 1. to filter input meant for setHeaderExtensionsToOffer 2. to serve as a (modifiable) base for input to setHeaderExtensionsToOffer However, once https://github.com/w3c/webrtc-extensions/issues/136 is fixed, using the output as input is going to no-op in ways that might surprise users: ```js const headers = transceiver.headerExtensionsToOffer; // not using structuredClone() as workaround! for (const header of headers) { if (header.uri == "urn:ietf:params:rtp-hdrext:ssrc-audio-level") { header.direction = "stopped"; // won't work if direction is unmodifiable } } transceiver.setOfferedRtpHeaderExtensions(headers); ``` JS is going to try to modify headers that are unmodifiable, not get any errors, and call setOfferedRtpHeaderExtensions thinking everything is fine, when nothing got done. ### Proposals - The simplest fix seems to be to replace it with a familiar `getHeaderExtensionsToOffer()` returning a sequence\<dictionary> Please view or discuss this issue at https://github.com/w3c/webrtc-extensions/issues/137 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Friday, 9 December 2022 22:22:41 UTC