- From: Jan-Ivar Bruaroey via GitHub <sysbot+gh@w3.org>
- Date: Mon, 26 Feb 2024 23:06:05 +0000
- To: public-webrtc-logs@w3.org
[RTCSessionDescriptionInit](https://w3c.github.io/webrtc-pc/#idl-def-rtcsessiondescriptioninit) differs from RTCLocalSessionDescriptionInit by its `type` member being [required](https://webidl.spec.whatwg.org/#required-dictionary-member):
```js
dictionary RTCSessionDescriptionInit {
required RTCSdpType type;
DOMString sdp = "";
};
```
vs.
```js
dictionary RTCLocalSessionDescriptionInit {
RTCSdpType type;
DOMString sdp = "";
};
```
This is what allows `description` to be optional in sLD but not in sRD:
```js
Promise<undefined> setLocalDescription(optional RTCLocalSessionDescriptionInit description = {});
Promise<undefined> setRemoteDescription(RTCSessionDescriptionInit description);
```
...which is observable:
```js
pc.setLocalDescription(); // fine
pc.setLocalDescription({type: "rollback"}); // fine
pc.setRemoteDescription({type: "rollback"}); // also fine
pc.setRemoteDescription(); // TypeError
RTCPeerConnection.prototype.setLocalDescription.length // 0
RTCPeerConnection.prototype.setRemoteDescription.length // 1
```
So this is by design.
> Problem: [Dart Language web bindings ](https://github.com/dart-lang/web/)which are generated from IDL is having an https://github.com/dart-lang/web/issues/178 where RTCLocalSessionDescriptionInit and RTCSessionDescriptionInit are unique, and neither class implements the other. This seems inconsistent with MDN and actual usage.
WebIDL [dictionaries](https://webidl.spec.whatwg.org/#idl-dictionaries) are not classes or interfaces: _"an operation that accepts a dictionary as an argument will perform a one-time conversion from the given JavaScript value into the dictionary, based on the current properties of the JavaScript object"_
IOW member-compatible inputs are valid, making RTCSessionDescriptionInit valid input to a method expecting RTCLocalSessionDescriptionInit.
If the Dart Language web bindings cannot express this then that seems like a limitation of those bindings.
--
GitHub Notification of comment by jan-ivar
Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2940#issuecomment-1965488897 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 26 February 2024 23:06:07 UTC