- From: Jan-Ivar Bruaroey <jib@mozilla.com>
- Date: Wed, 07 Aug 2013 21:24:06 -0400
- To: Harald Alvestrand <harald@alvestrand.no>
- CC: "public-webrtc@w3.org" <public-webrtc@w3.org>
Received on Thursday, 8 August 2013 01:24:34 UTC
On 8/6/13 11:57 AM, Jan-Ivar Bruaroey wrote:
> typedef (RTCStats or
> RTCRTPStreamStats or
> RTCInboundRTPStreamStats or
> RTCOutboundRTPStreamStats or
> RTCMediaStreamTrackStats or
> MediaStream or
> RTCTransport or
> RTCIceComponentStats or
> RTCIceCandidatePairStats or
> RTCIceCandidate or
> RTCCodec) AnyRTCStats;
>
> and have the API return AnyRTCStats.
Sorry I spoke too soon. Turns out multiple dictionaries in a union
aren't distinguishable from each other as types in general (a problem
mostly with input-args, a shame as we'd use them solely as return types
in our case). Our webidl compiler says:
WebIDL.WebIDLError: error: Flat member types of a union should be
distinguishable, RTCInboundRTPStreamStats (Wrapper) is not
distinguishable from RTCOutboundRTPStreamStats (Wrapper),
RTCStatsReport.webidl line 95:8
So the API may have to return an object of type object to be
functionally sound webidl in practice, with a comment about it returning
RTCStats-derived dictionaries. I.e. change what I proposed to:
[MapClass(DOMString, object)]
interface RTCStatsReport {};
.: Jan-Ivar :.
Received on Thursday, 8 August 2013 01:24:34 UTC