I created PR 527, enabling trickling of end-of-candidates

This is what was proposed and agreed to at the virtual interim, fixing
issues 442 and 483: https://github.com/w3c/webrtc-pc/pull/527

With this PR, passing a null candidate into addIceCandidate acts as an
end-of-candidates indication for all media sections. So if an application
has code for onicecandidate similar to the example:

if (evt.candidate)
    signalingChannel.send(JSON.stringify({"candidate": evt.candidate}));

The `if (evt.candidate)` line can simply be removed to start trickling the
special null candidate.

The `failed` and `completed` states now only occur if the following
conditions are met:

   - Local gathering is done
   - Got some indication that there are no additional remote candidates
   - Finished checking all candidate pairs

At the point when these conditions are met, it should be impossible to form
any new candidate pairs, so the states are truly final. Well, until an ICE
restart occurs, or a liveness check fails in the case of `completed`, but
that's expected.

There are a couple places in the PR where editorial improvements may be
possible; take a look at my comments on the PR on github to see what I'm
referring to.

Received on Monday, 29 February 2016 22:25:09 UTC