Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d1cf1ce59abb8c7e1a1f64efdeb4f50d8c9f83ce
https://github.com/WebKit/WebKit/commit/d1cf1ce59abb8c7e1a1f64efdeb4f50d8c9f83ce
Author: Eric Carlson <[email protected]>
Date: 2026-03-10 (Tue, 10 Mar 2026)
Changed paths:
A LayoutTests/http/tests/media/hls/hls-limit-play-rate-expected.txt
A LayoutTests/http/tests/media/hls/hls-limit-play-rate.html
M LayoutTests/platform/mac/TestExpectations
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
Log Message:
-----------
[Cocoa] Limit playback rate of spotify.com HLS streams to avoid stutter
https://bugs.webkit.org/show_bug.cgi?id=309378
rdar://171119015
Reviewed by Andy Estes.
When the playback rate of an HLS stream is greater than 2.0, it enters
iframe-only mode.
If a stream does not have an iframe-only variant, it speeds up playback by
pausing, seeking,
playing, causing the audio to "stutter".
Spotify HLS streams do not have iframe variants, so add a quirk to limit the
maximum
playback rate of their HLS streams to 2.0.
Test: http/tests/media/hls/hls-limit-play-rate.html
* LayoutTests/http/tests/media/hls/hls-limit-play-rate-expected.txt: Added.
* LayoutTests/http/tests/media/hls/hls-limit-play-rate.html: Added.
* LayoutTests/platform/mac/TestExpectations: The HLS stream fails to become
ready to play
on headless machines and times out. Not all macOS EWS have monitors or headless
adapters,
so skip the test on macOS for now.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::setPlaybackRate):
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::shouldLimitHLSPlaybackRate const):
(WebCore::handleSpotifyQuirks):
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:
Canonical link: https://commits.webkit.org/308983@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications