[webkit-changes] [WebKit/WebKit] 53463e: REGRESSION (274442 at main): [ MacOS wk2 ] media/medi...
Jean-Yves Avenard
noreply at github.com
Fri Feb 23 02:47:08 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 53463ea1c60fe6de4120dab418a8bafa5e6471dd
https://github.com/WebKit/WebKit/commit/53463ea1c60fe6de4120dab418a8bafa5e6471dd
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2024-02-23 (Fri, 23 Feb 2024)
Changed paths:
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebCore/Modules/mediasource/MediaSource.cpp
M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
Log Message:
-----------
REGRESSION (274442 at main): [ MacOS wk2 ] media/media-source/media-source-seek-complete.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=269814
rdar://123338097
Reviewed by Jer Noble.
If a `currentTimeChanged` message between the GPUP and WP was mid-flight when a new seek operation was
started it would have set the current time to a stale value, so the time would appear to go backward
and the seek would never complete.
Prior 274442 at main it *usually* didn't matter as the HTMLMediaElement cached the seeked time and would
partially hide the time going backward. Following this change however, the MediaPlayerPrivate became
the time reference, and so issues with the time being wrong became more problematic.
This issue could explain a series of intermittent failures we have seen ever since the MediaPlayer
was moved to the GPUP, including several changes made to prevent the time from ever going backward.
The explanation above likely explains on why we needed such workaround in the first place.
Also, before 274442 at main if a seek was pending, it would have always returned the seek time when
querying MediaSource::currentTime; we changed it to return 0 whenever the MediaSource was closed.
We return to the original behaviour.
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTime const):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged): Add log.
(WebKit::MediaPlayerPrivateRemote::currentTimeChanged): return early if currently seeking. Add log
Canonical link: https://commits.webkit.org/275231@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list