Closed Bug 1811912 Opened 1 year ago Closed 2 months ago

Implement RTCIceTransport.state

Categories

(Core :: WebRTC: Signaling, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
125 Branch
Tracking Status
firefox125 --- fixed

People

(Reporter: bwc, Assigned: bwc)

References

(Blocks 1 open bug)

Details

(Keywords: dev-doc-complete)

Attachments

(7 files, 2 obsolete files)

This is the bare minimum we need to get bug 1265827 working.

This will involve touching multiple places, including MediaTransportHandlerSTS, MediaTransportHandlerIPC, PMediaTransport, MediaTransportHandler, RTCRtpTransceiver, and RTCDtlsTransport. Most of this is a pretty straightforward copy/paste of what we're doing for DTLS state, so should not be too hard.

For this, we will need to add some ICE state-change signals to MediaTransportHandler that will live alongside the existing DTLS state-change signals here:

https://searchfox.org/mozilla-central/rev/c5eeb9f4fcfe52b028e7774054444f2982feccc3/dom/media/webrtc/jsapi/MediaTransportHandler.h#129-131

These will be connected to TransportLayerIce, similar to the way that the existing signals are connected to the TransportLayerDtls:

https://searchfox.org/mozilla-central/rev/c5eeb9f4fcfe52b028e7774054444f2982feccc3/dom/media/webrtc/jsapi/MediaTransportHandler.cpp#853-860

Once we have the new signals, we can then use them to update RTCIceTransport.state similar to how we update RTCDtlsTransport.state here:

https://searchfox.org/mozilla-central/rev/c5eeb9f4fcfe52b028e7774054444f2982feccc3/dom/media/webrtc/jsapi/RTCRtpTransceiver.cpp#233-236

and

https://searchfox.org/mozilla-central/rev/c5eeb9f4fcfe52b028e7774054444f2982feccc3/dom/media/webrtc/jsapi/RTCRtpTransceiver.cpp#255-270

Blocks: 1307994

Actually, this has nothing to do with RTCPeerConnection.connectionState; that is based on RTCDtlsTransport.state, which we already have. Once we have this, we will want to use it to reimplement our existing implementation of RTCPeerConnection.iceConnectionState.

No longer blocks: 1265827
Assignee: nobody → docfaraday
Status: NEW → ASSIGNED

Depends on D193124

Depends on D193125

Also, set up the cycle collection for the transport objects held by PCImpl

Depends on D193127

Depends on D193128

Comment on attachment 9362714 [details]
Bug 1811912: Fix bug where the old stream wasn't being closed after an ICE restart. r?mjf

Revision D193130 was moved to bug 1792042. Setting attachment 9362714 [details] to obsolete.

Attachment #9362714 - Attachment is obsolete: true

There are some r+ patches which didn't land and no activity in this bug for 2 weeks.
:bwc, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit BugBot documentation.

Flags: needinfo?(jib)
Flags: needinfo?(docfaraday)

Depends on D193129

Flags: needinfo?(jib)
Attachment #9372102 - Attachment is obsolete: true
Pushed by bcampen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/65eb9f0691f0
Test cases for RTCIceTransport. r=jib
https://hg.mozilla.org/integration/autoland/rev/0692ec0775c8
webidl for RTCIceTransport r=jib,webidl,saschanaz
https://hg.mozilla.org/integration/autoland/rev/8c0e34780310
Basic webidl impl r=jib
https://hg.mozilla.org/integration/autoland/rev/5eb89e1610b7
Handle ICE connection and gathering states on a per-transport basis. r=mjf
https://hg.mozilla.org/integration/autoland/rev/e17aa225e500
Handling for state updates. r=jib
https://hg.mozilla.org/integration/autoland/rev/da08fd49b4ec
Remove redundant empty candidate signal. r=mjf
https://hg.mozilla.org/integration/autoland/rev/502af1ea1f4c
Update expectations in the ICE unit-test, and fix some handling of the "disconnected" state. r=mjf
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/44687 for changes under testing/web-platform/tests
Upstream PR was closed without merging
Pushed by bcampen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f743d6b74f60
Test cases for RTCIceTransport. r=jib
https://hg.mozilla.org/integration/autoland/rev/c0dd798d5c5d
webidl for RTCIceTransport r=jib,webidl,saschanaz
https://hg.mozilla.org/integration/autoland/rev/fd5b4b44fba4
Basic webidl impl r=jib
https://hg.mozilla.org/integration/autoland/rev/a2abe7d0112f
Handle ICE connection and gathering states on a per-transport basis. r=mjf
https://hg.mozilla.org/integration/autoland/rev/e410081135ed
Handling for state updates. r=jib
https://hg.mozilla.org/integration/autoland/rev/476e830b9b9f
Remove redundant empty candidate signal. r=mjf
https://hg.mozilla.org/integration/autoland/rev/ef36a8aca9a2
Update expectations in the ICE unit-test, and fix some handling of the "disconnected" state. r=mjf
Upstream PR merged by moz-wptsync-bot
Flags: needinfo?(docfaraday)

FF125 MDN Docs work for this can be tracked in https://github.com/mdn/content/issues/32775. This primarily includes some tidying of the existing docs, compatibility updates, and an MDN release note.

FYI we didn't spot this initially because the keyword dev-docs-needed had not been added. Would appreciate that being added when something ships. We picked this up from BCD collector tests.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: