Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ce9f06404fc2e96a2f0a837ac3dcfb4650f9e328
https://github.com/WebKit/WebKit/commit/ce9f06404fc2e96a2f0a837ac3dcfb4650f9e328
Author: Jean-Yves Avenard <[email protected]>
Date: 2026-08-10 (Mon, 10 Aug 2026)
Changed paths:
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/html/HTMLMediaElement.h
Log Message:
-----------
[site-isolation] media/media-source/media-source-duplicate-seeked.html is a
permanent failure
https://bugs.webkit.org/show_bug.cgi?id=321421
rdar://184489618
Reviewed by Eric Carlson.
The test seeked to 0.9 of a one-second resource, called play(), and expected an
ended event with no
further seeked event. With site isolation enabled an extra seeked arrived after
ended.
completePlayInternal() implements the spec's "if playback has ended, seek to
the start" step and
evaluated endedPlayback() when it ran, which is after the playback admission
round trip. Playback
reached the end of the media during that round trip, so endedPlayback() was
true by then and
seekInternal() ran a seek to zero the page never asked for. Without site
isolation the admission
completed in the same task or one runloop turn, well inside the test's 100ms
margin, so endedPlayback()
was still false.
playInternal() now captures endedPlayback() at play() time and passes it to
completePlayInternal(),
alongside the shouldNotifyAboutPlaying and shouldResolvePromises decisions it
already captures there
for the same reason.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::completePlayInternal): Take the seek-to-start
decision as a parameter.
(WebCore::HTMLMediaElement::playInternal): Capture endedPlayback() at play()
time and pass it through
the admission completion handler.
* Source/WebCore/html/HTMLMediaElement.h:
Canonical link: https://commits.webkit.org/318932@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications