Re: WebRTC spec errata (regarding states)

Hi

I've incorporated these changes into the "work in progress"-spec on github.

https://github.com/fluffy/webrtc-w3c/commit/700919bc2f35c86b5a72a1677efb50ae0366357d

Please review.

/Adam

On 2013-02-21 00:44, Justin Uberti wrote:
> Some questions came up the other day regarding the current spec language
> regarding the various state enums and callbacks. Looking it over, I see
> that not all of what was agreed upon made it into the spec. Below is a
> set of minor issues I noticed while reviewing.
>
> References:
> - State proposal:
> https://docs.google.com/document/d/13TYiNSEmFkB7IeNLEJFxI0xMNk8q_LhXE_hbvFbXRTU/edit
> - Dec teleconf minutes: http://www.w3.org/2012/12/13-webrtc-minutes.html
>
>  1. RTCSignalingState
>      1. 4.3.1, list 3, bullet 4:
>         The transition to "stable" state, or any other signaling state,
>         only occurs via calls to setLocalDescription or
>         setRemoteDescription. It is not connected with the ICE state
>         transitions.

Removed bullet.

>      2. 4.3.2.1: onopen
>         We agreed to remove this callback, as it is no longer
>         meaningful, and redundant with onsignalingstatechange.

Removed.

>      3. 4.3.2.1: onstatechange
>         The correct name for this callback is onsignalingstatechange.

Updated.

>      4. 4.3.2.2: setLocalDescription
>         The description for this function should indicate that it
>         triggers a signaling state change. It should also indicate that
>         an INVALID_STATE exception is triggered if the wrong
>         SessionDescription.type is supplied for the current state.
>      5. 4.3.2.2: setRemoteDescription
>         The description for this function should indicate that it
>         triggers a signaling state change. It should also indicate that
>         an INVALID_STATE exception is triggered if the wrong
>         SessionDescription.type is supplied for the current state.

Updated with the modifications we talked about in a prior reply to this 
mail. I've tried to address some stuff that was unspecified around these 
functions. We have a bit of redundancy with both a callback and an event 
when a description is applied successfully. I've picked an order for 
these which is event first, and callback second. Please review.

>  2. RTCIceConnectionState
>      1. 4.3.2: onicechange
>         The correct name for this callback is oniceconnectionstatechange.

Updated.

>      2. 4.4.3: RTCIceState
>         The enum name is incorrect; it should be RTCIceConnectionState.
>         Also, the initial state should be "new", like
>         RTCIceGatheringState, not "starting".

Updated.

>  3. RTCIceGatheringState
>      1. 4.3.2.1: ongatheringchange
>         We decided that this callback is not needed; the necessary
>         information can be gotten from onicecandidate.

Updated.

>      2. 4.3.2.1: onicecandidate
>         The description for this callback should indicate that it is
>         invoked with a null argument when gathering completes. Prior to
>         dispatching this null callback, the iceGatheringState will be
>         set to "completed".

I've seen that we have descriptions on event handler attributes in the 
form "this callback should be invoked when...". There are other ways to 
listen for events so the attribute handler shouldn't be called for any 
special reason other then the event being fired. Anyways, to address 
this particular problem, I've added a paragraph about how the ICE Agent 
notifies the script about the candidate gathering process (new candidate 
or gathering done). Please review. Perhaps the ICE Agent should have 
it's own sub-section in the "4.3.1 Operation" section where we collect 
this kind of stuff.

>      3. 4.3.2.2: setLocalDescription
>         The description for this function should indicate that it causes
>         a transition of the gathering state from "new", to "gathering",
>         if that is the current state, and the local description contains
>         at least one m= line. Also, if a local description is supplied
>         that contains a different set of ICE credentials, this will
>         trigger an ICE restart, and change the ICE gathering state to
>         "gathering".

Updated.

Received on Wednesday, 6 March 2013 18:04:43 UTC