- From: Taylor Brandstetter <deadbeef@google.com>
- Date: Mon, 30 Nov 2015 10:57:57 -0800
- To: public-webrtc@w3.org
- Message-ID: <CAK35n0b-Ztteoj63dsNSYejPWiBe9CM5Hdg36icowWExySDBbw@mail.gmail.com>
Harald and Adam pointed out that RTCIceCandidate needs to be an interface,
not a dictionary, since it's an attribute of RTCPeerConnectionIceEvent.
So, here's a new PR that returns to the "interface with an init dictionary"
pattern: https://github.com/w3c/webrtc-pc/pull/407
A summary of the PR:
- addIceCandidate now takes a union type of the interface and the init
dictionary. So legacy code that does "addIceCandidate(new
RTCIceCandidate({...}));" and new code that does "addIceCandidate({...});"
should both work.
- Defined "RTCIceCandidateInit" (like we had before) which contains only
the candidate, sdpMid and sdpMLineIndex members.
- RTCIceCandidate becomes an interface, with a constructor that takes an
RTCIceCandidateInit. This is partly for legacy backwards compatibility, but
it also lets an application construct an RTCIceCandidate and then inspect
the new attributes populated.
- All the members of RTCIceCandidate become readonly attributes. Some of
them are nullable.
Also, a side-note: I noticed that somewhere along the way, the dictionary
argument of the RTCIceCandidate constructor went from optional to required.
So any code doing the following will no longer work:
var candidate = new RTCIceCandidate();
candidate.candidate = /*...*/;
candidate.sdpMLineIndex = /*...*/;
Is this ok?
Received on Monday, 30 November 2015 18:58:36 UTC