Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 97ebd29ad20339f333d3bf60bd40c889e381a586
https://github.com/WebKit/WebKit/commit/97ebd29ad20339f333d3bf60bd40c889e381a586
Author: Youenn Fablet <[email protected]>
Date: 2025-10-28 (Tue, 28 Oct 2025)
Changed paths:
A LayoutTests/webrtc/remote-track-label-quirks-expected.txt
A LayoutTests/webrtc/remote-track-label-quirks.html
M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp
M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp
M
Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
Log Message:
-----------
Add a quirk to make unique remote MediaStreamTrack labels
rdar://161192008
https://bugs.webkit.org/show_bug.cgi?id=301533
Reviewed by Philippe Normand.
Google Chrome uses the track ID for remote track labels, while the spec is
asking to use either `remote audio` or `remote video`.
Facebook is listening to WebRTC track events for new tracks, so as to send
updates to different parts of the DB video call code base.
To send those updates, it generates a state as a JS object and compares it with
the previous state.
If they are different, some processing is happening. If they are the same, no
processing happens as a an optimization.
To check whether the state has changed, track labels are used.
In Chrome, track labels would change based on track ids, but not in Safari.
This would prevent some updates to happen and create flakky behaviours.
To workaround this limitation, we introduce a quirk that concatenates the spec
label with the track ID.
We enable this quirk for Facebook and messenger web sites.
We also update GStream incoming audio/video sources so that they provide the
correct label as per spec.
Manually tested and adding quirk specific test.
Canonical link: https://commits.webkit.org/302231@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications