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

Re: [webrtc-pc] {iceRestart: true} works poorly with negotiationneeded (#2167)

From: Harald Alvestrand via GitHub <sysbot+gh@w3.org>
Date: Thu, 06 Jun 2019 12:35:17 +0000
To: public-webrtc-logs@w3.org
Message-ID: <issue_comment.created-499475161-1559824515-sysbot+gh@w3.org>
pc.onnegotiationneeded = async () => {
  await pc.setLocalDescription(await pc.createOffer());
  io.send({desc: pc.localDescription});

actulally allows shimming in a RestartIce method, like this:

RTCPeerConnection.prototype.restartIce = function() {
   this.iceRestartNeeded = true;

pc.onnegotiationneeed = async() => {
  await pc.setLocalDescription(await pc.createOffer({iceRestart: this.iceRestartNeeded});

and (if you want to emulate your proposed patch perfectly):

pc.addEventListener('signalingstatechange', () => {
   if (this.signalingstate == 'stable) {
     this.iceRestartNeeded = false;

Point being - there seems to be nothing in the new API that can't be done by the user if the user desires it.

What I dislike about the new API surface is that it seems like it's doing an imperative action ("RestartIce"), while what it's actually doing is (probably) triggering a negotiation request, which will just call back out to user code. Why should the user call a method to call his own code?

GitHub Notification of comment by alvestrand
Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2167#issuecomment-499475161 using your GitHub account
Received on Thursday, 6 June 2019 12:35:19 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 6 June 2019 12:35:20 UTC