Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3e93b48a79d9ebd61a374d4c6395dea498821a8e
https://github.com/WebKit/WebKit/commit/3e93b48a79d9ebd61a374d4c6395dea498821a8e
Author: Jer Noble <[email protected]>
Date: 2026-06-29 (Mon, 29 Jun 2026)
Changed paths:
M
LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt
M LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints.html
A LayoutTests/fast/mediastream/VideoFacingModeEnum-values-expected.txt
A LayoutTests/fast/mediastream/VideoFacingModeEnum-values.html
A
LayoutTests/fast/mediastream/configurationchange-defer-and-abort-expected.txt
A LayoutTests/fast/mediastream/configurationchange-defer-and-abort.html
A LayoutTests/fast/mediastream/constrainable-dictionary-shapes-expected.txt
A LayoutTests/fast/mediastream/constrainable-dictionary-shapes.html
A LayoutTests/fast/mediastream/constrainable-pattern-getters-expected.txt
A LayoutTests/fast/mediastream/constrainable-pattern-getters.html
A LayoutTests/fast/mediastream/enumerateDevices-truncation-expected.txt
A LayoutTests/fast/mediastream/enumerateDevices-truncation.html
A
LayoutTests/fast/mediastream/mediastream-onaddtrack-and-overconstrainederror-code-expected.txt
A
LayoutTests/fast/mediastream/mediastream-onaddtrack-and-overconstrainederror-code.html
A LayoutTests/fast/mediastream/mediastreamtrack-readyState-enum-expected.txt
A LayoutTests/fast/mediastream/mediastreamtrack-readyState-enum.html
A LayoutTests/webrtc/peerConnection-rvfc-metadata-timestamps-expected.txt
A LayoutTests/webrtc/peerConnection-rvfc-metadata-timestamps.html
Log Message:
-----------
[MediaStreams] Add tests for untested areas of the MediaCapture-Main and
Extensions specifications
rdar://180931617
https://bugs.webkit.org/show_bug.cgi?id=318115
Reviewed by Eric Carlson.
Add tests covering previously untested areas of the MediaCapture-Streams
specifications, organized around two skeptical-audit cycles that
distinguished honest coverage from filename-keyword false positives in a
pre-existing area-coverage study.
constrainable-dictionary-shapes.html verifies the IDL shapes of
DoubleRange / ULongRange (via getCapabilities) and ConstrainDoubleRange /
ConstrainULongRange / ConstrainDOMStringParameters /
ConstrainBooleanOrDOMStringParameters (via applyConstraints round-trip,
using frameRate, width, facingMode, and echoCancellation as the
representative constrainable properties).
constrainable-pattern-getters.html verifies that
MediaStreamTrack.getCapabilities / getConstraints / getSettings each
return the corresponding [[Capabilities]] / [[Constraints]] /
[[Settings]] internal slot as a plain object, are idempotent across
calls without intervening mutation, and that getConstraints replaces
rather than merges across successive applyConstraints calls.
VideoFacingModeEnum-values.html asserts that any value returned via
getSettings().facingMode or getCapabilities().facingMode is from the
spec-defined VideoFacingModeEnum domain {"user", "environment", "left",
"right"}. This is a partial coverage of behavior 122; exhaustive
enum-completeness testing would require mock-camera infrastructure that
honors the facingMode constructor argument through to getSettings()
(currently it does not).
mediastreamtrack-readyState-enum.html asserts that
MediaStreamTrack.readyState only returns values from the
MediaStreamTrackState enum ({"live", "ended"}) across creation, stop,
and clone-of-live / clone-of-ended transitions.
mediastream-onaddtrack-and-overconstrainederror-code.html verifies
MediaStream.onaddtrack / onremovetrack IDL handler existence and
defaults, the addtrack event payload shape when fired by script
addTrack, and OverconstrainedError's spec-mandated DOMException
inheritance with .code = 0. The OverconstrainedError subtests fail
because WebKit's OverconstrainedError is a standalone RefCounted
interface that doesn't inherit DOMException and has no .code attribute;
the failure is recorded in the test's expected.txt baseline and tracked
by rdar://180728516.
MediaDevices-getSupportedConstraints.html (modification) is extended
with explicit assertions for backgroundBlur and powerEfficient
defaulting to true. The pre-existing for-each loop only caught keys the
UA already exposed, so the absence of these dictionary members went
untested.
enumerateDevices-truncation.html asserts the spec-mandated truncation
of microphone / camera lists in enumerateDevices() output to at most
one entry when the corresponding permission is denied (and the
"information can be exposed" predicate returns false). Both subtests
fail because WebKit returns the full device list with empty labels
instead of truncating, exposing the count to fingerprinting. Tracked
by rdar://180672669.
webrtc/peerConnection-rvfc-metadata-timestamps.html asserts the
type / range semantics of VideoFrameMetadata.captureTime,
.receiveTime, and .rtpTimestamp on a bidirectional RTCPeerConnection.
receiveTime and rtpTimestamp pass; captureTime fails because WebKit
returns NTP-epoch milliseconds (~4e12) instead of a value relative to
Performance.timeOrigin. Tracked by rdar://180672837.
configurationchange-defer-and-abort.html asserts that the
configurationchange task aborts when the track's readyState is already
"ended" (PASSes) and that the task is deferred until unmute when
triggered while the track is muted (FAILs because WebKit drops the
event entirely; tracked by rdar://180728609).
*
LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt:
* LayoutTests/fast/mediastream/MediaDevices-getSupportedConstraints.html:
* LayoutTests/fast/mediastream/VideoFacingModeEnum-values-expected.txt: Added.
* LayoutTests/fast/mediastream/VideoFacingModeEnum-values.html: Added.
*
LayoutTests/fast/mediastream/configurationchange-defer-and-abort-expected.txt:
Added.
* LayoutTests/fast/mediastream/configurationchange-defer-and-abort.html: Added.
* LayoutTests/fast/mediastream/constrainable-dictionary-shapes-expected.txt:
Added.
* LayoutTests/fast/mediastream/constrainable-dictionary-shapes.html: Added.
* LayoutTests/fast/mediastream/constrainable-pattern-getters-expected.txt:
Added.
* LayoutTests/fast/mediastream/constrainable-pattern-getters.html: Added.
* LayoutTests/fast/mediastream/enumerateDevices-truncation-expected.txt: Added.
* LayoutTests/fast/mediastream/enumerateDevices-truncation.html: Added.
*
LayoutTests/fast/mediastream/mediastream-onaddtrack-and-overconstrainederror-code-expected.txt:
Added.
*
LayoutTests/fast/mediastream/mediastream-onaddtrack-and-overconstrainederror-code.html:
Added.
* LayoutTests/fast/mediastream/mediastreamtrack-readyState-enum-expected.txt:
Added.
* LayoutTests/fast/mediastream/mediastreamtrack-readyState-enum.html: Added.
* LayoutTests/webrtc/peerConnection-rvfc-metadata-timestamps-expected.txt:
Added.
* LayoutTests/webrtc/peerConnection-rvfc-metadata-timestamps.html: Added.
Canonical link: https://commits.webkit.org/316096@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications