[webrtc-pc] Clarify what happens when rolling back an ICE restart (#2367)

henbos has just created a new issue for https://github.com/w3c/webrtc-pc:

== Clarify what happens when rolling back an ICE restart ==
Spin-off from [here](https://github.com/w3c/webrtc-pc/issues/2324#issuecomment-558127202):

> What is the effect of ICE restart? Does this need to be rolled back? What happens with generated candidates, will they get rejected by addIceCandidate? Is this something the app needs to be prepared for? Should we add a "note"?

@jan-ivar clarified that "restartIce() [survives rollback](https://github.com/web-platform-tests/wpt/blob/master/webrtc/RTCPeerConnection-restartIce.https.html#L344), createOffer({iceRestart: true}) does not."

I don't think clarification is needed for the fact that negotiation is still needed and iceRestart will be re-generated in the next offer.

What I am concerned about in this issue is what happens with candidates, old and new.
- If a candidate is generated that is then rolled back, are there any potential races with onicecandidate and addIceCandidate that we need to guard against or add a "note" for?
- What happens when you have candidates from both old and new generation? Do we need a step that says to revert the state of the ICE agent, etc?

Questions asked, I don't know the answer. Please take a look at this issue @jan-ivar 

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2367 using your GitHub account

Received on Monday, 25 November 2019 12:19:13 UTC