WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
260833
REGRESSION(
267279@main
): [ macOS wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back.html is a consistent text failure.
https://bugs.webkit.org/show_bug.cgi?id=260833
Summary
REGRESSION(267279@main): [ macOS wk2 ] imported/w3c/web-platform-tests/media-...
Ben Schwartz
Reported
2023-08-28 16:49:40 PDT
imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back.html This test is a consistent text failure on macOS wk2 (including gpuprocess). HISTORY:
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fmedia-source%2Fmediasource-play-then-seek-back.html&platform=mac&flavor=wk2&flavor=gpuprocess
TEXT DIFF: -PASS Test playing then seeking back. +Harness Error (TIMEOUT), message = null +TIMEOUT Test playing then seeking back. Test timed out + DIFF URL:
https://build.webkit.org/results/Apple-Ventura-Release-AppleSilicon-WK2-Tests/267362%40main%20(4670)/imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back-pretty-diff.html
REPRODUCTION: I was able to reproduce this bug on macOS Ventura (13.5, 22G74/arm64) using the following command: run-webkit-tests --verbose --iterations 100 --clobber-old-results --exit-after-n-failures 1 imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back.html REGRESSION: I was able to bisect a regression point. This test reproduced at
267279@main
, but it did not reproduce at
267278@main
. Changes at
267279@main
appear to be directly related to this error, and is likely what caused the failure.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2023-08-28 16:49:49 PDT
<
rdar://problem/114594559
>
EWS
Comment 2
2023-08-28 17:06:38 PDT
Test gardening commit
267375@main
(cae1cdb5b828): <
https://commits.webkit.org/267375@main
> Reviewed commits have been landed. Closing PR #17157 and removing active labels.
Jean-Yves Avenard [:jya]
Comment 3
2023-09-05 22:46:09 PDT
The issue occurs because the web content process always assumes a seek is completed once the GPU process sends a `timeChanged` call. But a `timeChanged` call doesn't always happen following a seek operation. consider the following: MediaPlayer (WP) start playback and immediately starts seeking. The GPU process upon starting playback will call back `timeChanged` as soon as the time progresses. The MediaPlayer (WP) now assumes that seeking has completed and fire the seeked event. The WPT tests waits for the `seeking` event to be fired to set a `seeked` event listener, and it does so by calling setTimeout(0). So the `seeked` is listener is only set at the next event loop. By the time, in the above scenario) the seeked event has already been fired. And so the test timeout waiting for another `seeked` event that will never come. So we have two issues at hand: - We fire the `seeked` event too early, before the seek operation has completed when we do: video.play() video.currentTime = 0; - The WPT test shouldn't wait for another event loop to set an event listener. The latter is done everywhere, and appears incorrect in this case. The spec indicates that within the `seeking` event being fired and the `seeked` event, we are only to await a stable state.
https://html.spec.whatwg.org/#seeking
A stable state occurs through a micro task, it isn't dependent on a new event loop. So the firing for `seeking` and `seeked` could be all done within the same event loop. If so, the test here will timeout.
Jean-Yves Avenard [:jya]
Comment 4
2023-09-06 07:21:25 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/17480
EWS
Comment 5
2023-09-07 04:31:56 PDT
Committed
267723@main
(939ec6849c62): <
https://commits.webkit.org/267723@main
> Reviewed commits have been landed. Closing PR #17480 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug