W3C home > Mailing lists > Public > public-webrtc@w3.org > June 2013

Re: New editor's draft (v20130603)

From: Adam Bergkvist <adam.bergkvist@ericsson.com>
Date: Fri, 14 Jun 2013 13:35:01 +0200
Message-ID: <51BAFFE5.9020801@ericsson.com>
To: Randell Jesup <randell-ietf@jesup.org>
CC: public-webrtc@w3.org
On 2013-06-14 12:31, Randell Jesup wrote:
> On 6/13/2013 11:31 PM, Adam Bergkvist wrote:
>> On 2013-06-13 18:56, Randell Jesup wrote:
>>> On 6/5/2013 4:59 AM, Adam Bergkvist wrote:
>>>> On 2013-06-04 16:34, Randell Jesup wrote:
>>>>>
>>>>> One issue:   In RTCDataChannelInit:
>>>>>
>>>>>      boolean          negotiated
>>>>> <http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCDataChannelInit-negotiated>
>>>>>
>>>>> =true;
>>>>>
>>>>> The default should be false - it should be set to true on any
>>>>> externally-negotiated channel.
>>>>
>
>>> I'm ok with the name and description, so long as the default changes to
>>> 'false', which is what I implemented and landed.  We should just comment
>>> in the IDL file that this should be set to true if the application is
>>> using external negotiation.   I believe Peter Thatcher was also assuming
>>> the default would be false.
>>>
>>
>> So I interpret what you're saying as that "negotiated" will be
>> released in firefox, but with the opposite meaning from spec is saying
>> currently (spec says "negotiated" != "externally negotiated"). I'm bit
>> confused since you say that you're ok with the name and description.
>
> Sorry if I wasn't clear.  Let me try again:
>
> Currently it says "negotiated=true;", and in the descriptive part it says:
>
> |    negotiated| of type boolean, defaulting to |true|
>
>     The default value of true tells the user agent to negotiate the
>     channel and instruct the other peer to dispatch a corresponding
>     ||RTCDataChannel|
>     <http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel>|
>     object. If set to false, the negotiation is omitted and it is up to
>     the script to create the corresponding ||RTCDataChannel|
>     <http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel>|
>     object at the other peer.
>
> ||Re-reading this carefully, I myself may have been confused when I
> quickly read it (the draft came out the same day I had to get changes
> in).  I probably could have implemented it as written, because *both*
> the meaning and the default were flipped from what I expected (and thus
> "createDataChannel("",{})" would have indeed still caused in-channel
> Open messages to occur).
>
> The current definition confused me on the first read, because when we
> send Open messages, there is no negotiation, they're declarative.  So
> "negotiated=true" as the definition was confusing, since it said we were
> negotiating when in fact we're not.  This is reflected in my rewording
> below to use the word "notify".
>
> So, again to be clear, this is what we'll be shipping in Fx 22, and I
> would suggest we change the definition to match this:
>
> |    negotiated| of type boolean, defaulting to |false|
>
>     The default value of false tells the user agent to create the
>     channel and notify the other peer to create the channel and fire an
>     event named datachannel to the peer's corresponding
>     ||RTCDataChannel|
>     <http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel>|
>     object. If set to true, then no channel creation notification will
>     be sent to the other peer, and it is up to the script to ensure
>     creation of the corresponding ||RTCDataChannel|
>     <http://dev.w3.org/2011/webrtc/editor/webrtc.html#idl-def-RTCDataChannel>|
>     object at the other peer.
>
> ||This also changes the wording to use 'fire an event named datachannel'
> to match usage elsewhere in the draft for events.
>
> This definition means "createDataChannel("",{})" will send an Open and
> cause ondatachannel, and "createDataChannel("",{negotiated=true})" will
> not send an Open, and will assume that the application has either
> pre-defined a channel or is negotiating the channel itself (externally).

Thanks for clarifying this. As long as we're clear in documentation what 
negotiation is; a thing you do in JavaScript when you create two 
separate DataChannel objects and connect them, then I think we're good.

I'll update the spec accordingly.

/Adam
Received on Friday, 14 June 2013 11:35:31 UTC

This archive was generated by hypermail 2.3.1 : Monday, 23 October 2017 15:19:33 UTC