[webrtc-pc] pc.setConfiguration()'s default value handling doesn't match implementations (#2690)

jan-ivar has just created a new issue for https://github.com/w3c/webrtc-pc:

== pc.setConfiguration()'s default value handling doesn't match implementations ==
Currently, defaults for the following values are set in the [RTCPeerConnection constructor](https://w3c.github.io/webrtc-pc/#constructor):
> 8. If the value of configuration.iceTransportPolicy is undefined, set it to "all".
> 9. If the value of configuration.bundlePolicy is undefined, set it to "balanced".
> 10. If the value of configuration.rtcpMuxPolicy is undefined, set it to "require". 

But this misses [setConfiguration](https://w3c.github.io/webrtc-pc/#set-pc-configuration), which ends up setting [ICE transports setting](https://w3c.github.io/webrtc-pc/#ice-transports-setting) to `undefined` if `iceTransportPolicy` is missing, and fails to throw if `bundlePolicy` is missing, because of this sentence _"If the value of configuration.bundlePolicy is set and its value differs from the connection's bundle policy, throw an InvalidModificationError."_

This appears [untested](https://github.com/web-platform-tests/wpt/blob/8347f5b483/webrtc/RTCConfiguration-iceTransportPolicy.html) [2](https://github.com/web-platform-tests/wpt/blob/8347f5b483/webrtc/RTCConfiguration-bundlePolicy.html) but a cursory [check](https://jsfiddle.net/jib1/7oLbkupe/) suggests Chrome and Safari are already doing the right thing: do all input validation upfront.

Instead we should specify the defaults in WebIDL.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2690 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Friday, 22 October 2021 20:30:43 UTC