[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