This is part of "Perfect Negotiation" (https://crbug.com/980872). Spec PR here (merged): https://github.com/w3c/webrtc-pc/pull/2169 Spec: https://w3c.github.io/webrtc-pc/#dfn-localufragstoreplace The restartIce() makes the next createOffer() generate new ICE credentials, as if {iceRestart:true} was passed in as options. It also causes negotiationneeded. This is better than manually restarting ICE because it survives rollbacks (when that is implemented) and restartIce() can be called regardless of current signalingState. Bug: chromium:980881 Change-Id: I8e70bec31ce9d4d6a303bd35e91b2dcc28fcad60 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144941 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28596}