Re: [webrtc-pc] setCodecPreferences should trigger negotiationneeded (#2964)

Concern was raised in yesterday's meeting over the web compatibility of introducing this change in behavior now.

Let's examine cases where existing websites might feature-detect and call `setCodecPreferences` in Chromium and Safari and their possibility of breakage.

No breakage:
- calling it in "stable" alongside other methods like addTrack/addTransceiver/setStreams/direction/createDataChannel
- calling it in "have-remote-offer" as part of answering
- not using a `negotiationneeded` event listener to negotiate
- [using sLD() without arguments to negotiate](https://jsfiddle.net/jib1/ruwa96m5/36/)

Breakage of intent:
- calling it with the intent for it to take effect in a much later negotiation, or not at all
  - breakage = updates too soon (seems mild), or updates when it shouldn't (seems esoteric/rare)

Negotiation completes but logs an error:
- calling it in "stable" without any other methods ([using sLD(offerFromCreateOffer) to negotiate](https://jsfiddle.net/jib1/ruwa96m5/34/))
- calling it in "have-remote-offer" after answering

Negotiation breaks:
- I can't think of any cases, though it would require custom code in `negotiationneeded` event handler (or double code) that requires tight control of when it can be called (which seems unlikely to me)
- Maybe some SFU cases I haven't thought about?
- Applications explicitly written to terminate on any unexpected error logged (doctor it hurts when I do this)

Happy to field questions on any of these.

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


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

Received on Thursday, 25 April 2024 00:51:10 UTC