[webkit-changes] [WebKit/WebKit] 6bf767: REGRESSION (268393 at main): [ Monterey Ventura Debug...

Jean-Yves Avenard noreply at github.com
Wed Jan 24 06:22:10 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6bf767bc41419a266bac5b934afcbe5c6f74d0b3
      https://github.com/WebKit/WebKit/commit/6bf767bc41419a266bac5b934afcbe5c6f74d0b3
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2024-01-24 (Wed, 24 Jan 2024)

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h

  Log Message:
  -----------
  REGRESSION (268393 at main): [ Monterey Ventura Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=267661
rdar://121154236

Reviewed by Eric Carlson and Simon Fraser.

It was possible the MediaPlayerPrivate's accelerated rendering capability
to change without a required match to MediaPlayer::renderingModeChanged.

We were querying the old value of MediaPlayer::renderingCanBeAccelerated
after modifying a class member that would impact what the new value would be.
Compare with the previous value and call renderingModeChanged if required.

Covered by existing tests.

* LayoutTests/platform/ios/TestExpectations: Remove obsolete expectations as original bug got fixed.
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: Remove unnecessary call to renderModeChanged as removing the audio layer doesn't impact how images are rendered.
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::destroyAudioRenderers): Same as above.
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): There's no need to send to the GPU process that the rendering has mode has changed
as both content process and GPU process' player values are initialised to false.
(WebKit::MediaPlayerPrivateRemote::readyStateChanged):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::updateConfiguration):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::checkAcceleratedRenderingState): Deleted.
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Canonical link: https://commits.webkit.org/273406@main




More information about the webkit-changes mailing list