Re: [webrtc-pc] Add note to getCapabilities to avoid InvalidModificationError (#2617)

> But if the user of this API has to do a dance of calling negotiation methods before getCapabilities() works, then we can no longer "abstract away negotiation" from the application

`createOffer`, unlike `setLocalDescription`, doesn't change signaling state, so it shouldn't interfere with negotiation, should it? Using my polyfill [above](https://github.com/w3c/webrtc-pc/pull/2617#pullrequestreview-551961464) to illustrate a workaround:
```
// Setup code.
await RTCRtpSender.getCapabilitiesAsync();
pc.onnegotiationneeded = (perfect negotiation pattern);
// Application code.
const transceiver = pc.addTransceiver("video");
transceiver.setCodecPreferences(getCodecsWithH264First(RTCRtpSender.getCapabilities().codecs));
```

> there is also nothing suggesting that I have to call createOffer() in order for getCapabilities() to work

True, though I don't think this impacts interpretation, since specs are written for implementers, not users. And following it leads us here. We could add a second note saying we messed up, and here's a workaround.

-- 
GitHub Notification of comment by jan-ivar
Please view or discuss this issue at https://github.com/w3c/webrtc-pc/pull/2617#issuecomment-745514908 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 15 December 2020 19:28:53 UTC