Closed Bug 1685833 Opened 11 months ago Closed 10 months ago

pc.restartIce() doesn't work with zero-argument pc.setLocalDescription()

Categories

(Core :: WebRTC: Signaling, defect, P2)

75 Branch
Unspecified
All
defect

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox-esr78 - wontfix
firefox84 --- wontfix
firefox85 - wontfix
firefox86 + fixed

People

(Reporter: jib, Assigned: jib)

References

(Regression)

Details

(Keywords: regression)

Attachments

(2 files)

STRs:

  1. Open https://jsfiddle.net/jib1/9Lpdwxrg/
  2. Check the first ☑ Camera
    ONN
    gathering
    onicecandidate: dc948bce
    onicecandidate: dc948bce
    onicecandidate: dc948bce
    onicecandidate: dc948bce
    onicecandidate: dc948bce
    complete
    addIceCandidate: d3abc55f
    addIceCandidate: d3abc55f
    addIceCandidate: d3abc55f
    
  3. Click the first Restart button

Expected result:

ONN
gathering
onicecandidate: 8b804542
onicecandidate: 8b804542
onicecandidate: 8b804542
onicecandidate: 8b804542
onicecandidate: 8b804542
complete
addIceCandidate: d7f75240
addIceCandidate: d7f75240
addIceCandidate: d7f75240

Actual results:

ONN
ONN
ONN
ONN
ONN
ONN
ONN
ONN
ONN
ONN
ONN
ONN
...

Workaround:

Uncomment the following code on line 58:

await pc.setLocalDescription(/* await pc.createOffer() */);

The bug is the zero-argument version of setLocalDescription fails to trigger ICE restart properly, doing a regular negotiation instead, after which ONN triggers again, ad infinitum.

[Tracking Requested - why for this release]: Embarrassing behavioral flaw in restartIce() pattern which was designed for perfect negotiation. Would like this fixed for upcoming blog post.

Assignee: nobody → jib
Severity: -- → S3
Component: WebRTC → WebRTC: Signaling
Priority: -- → P2
Regressed by: 1568292

This bug has been around since 75 and not reported until now, doesn't seem warranted to track for 85.

Pushed by jbruaroey@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/da549b4201cc
Test both zero and 1-argument SLD in RTCPeerConnection-restartIce.https.html r=bwc
https://hg.mozilla.org/integration/autoland/rev/a9556ebc4a04
Make zero-argument version of setLocalDescription() respect restartIce() method. r=bwc
Failed to create upstream wpt PR due to merge conflicts. This requires fixup from a wpt sync admin.
Status: NEW → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/27484 for changes under testing/web-platform/tests
Upstream PR merged by moz-wptsync-bot
You need to log in before you can comment on or make changes to this bug.