[webrtc-pc] Steps needed to rollback data channels (#2408)

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

== Steps needed to rollback data channels ==
Chrome has [a bug](https://crbug.com/1032987) when rolling back after createDataChannel and setting a remote offer.

```
(async () => {
  try {
    const pc = new RTCPeerConnection(), pc2 = new RTCPeerConnection();
    pc.createDataChannel("dummy");
    pc2.addTransceiver("video");
    const outgoingOffer = await pc.createOffer();
    const incomingOffer = await pc2.createOffer();
    pc.onsignalingstatechange = () => console.log(pc.signalingState);

    const p1 = pc.setLocalDescription(outgoingOffer);
    const p2 = pc.setRemoteDescription(incomingOffer);
    await p1;
    console.log(`After await SLD: ${pc.signalingState}`);
    await p2;
    console.log(`After await SRD: ${pc.signalingState}`);
  } catch(e) {
    console.log(e);
  }
})();
```

This should work but instead we get:

> InvalidAccessError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to set remote offer sdp: Failed to apply the description for 0: Failed to setup RTCP mux.

Two questions:
1. What, if anything, do you need to rollback with regards to data channels on local offer? (Implementer asking for advice.)
2. Is this JSEP territory-only, or do we need to update our rollback steps in webrtc-pc? (Natural follow-up to 1)

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

Received on Wednesday, 11 December 2019 14:13:27 UTC