Closed Bug 1624989 Opened 3 years ago Closed 1 year ago

Move RTCPeerConnection's operations chain to c++


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




101 Branch
Tracking Status
firefox101 --- fixed


(Reporter: bwc, Assigned: bwc)




(2 files, 3 obsolete files)

We should do this before moving RTCRtpSender to c++, because RTCRtpSender.replaceTrack needs to the use the PC's operations chain, and it will be much cleaner if we do this first.

Priority: -- → P2
Assignee: nobody → docfaraday
Depends on: 1402997
Depends on: 1755318
No longer depends on: 1402997

This is really unwieldy right now, because there is presently no c++ version of Then for dom::Promise that allows the behavior for rejection to be specified. We could just convert everything to MozPromise and back, but that would be pretty gross and I would like to avoid it.

I think the only reasonable way forward is to write something similar to Promise::ThenWithCycleCollectedArgs that allows a rejection function to be specified in such a way that a promise rejection can lead to a promise resolution in the next step in the chain.

Depends on D140357

Depends on D140358

This happens to fix a failure in webrtc/RTCPeerConnection-restartIce.https.html.

Depends on D141738

Attachment #9266525 - Attachment is obsolete: true
Attachment #9266527 - Attachment is obsolete: true
Attachment #9266526 - Attachment is obsolete: true

Try looks the same as baseline.

Pushed by
Move RTCPeerConnection's operations chain to c++ r=jib,webidl,smaug
Some simplifications that are possible because PeerConnectionImpl is cycle-collected. r=jib
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 101 Branch
Regressions: 1763654
Regressions: 1763832
Regressions: 1766122
You need to log in before you can comment on or make changes to this bug.