Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ad09364a059eb2fab58744bcba57532e565447c9
https://github.com/WebKit/WebKit/commit/ad09364a059eb2fab58744bcba57532e565447c9
Author: Ryan Fuller <[email protected]>
Date: 2025-05-29 (Thu, 29 May 2025)
Changed paths:
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/html/HTMLMediaElement.h
M Source/WebCore/html/HTMLVideoElement.cpp
M Source/WebCore/html/HTMLVideoElement.h
M Source/WebKit/WebProcess/cocoa/VideoPresentationManager.h
M Source/WebKit/WebProcess/cocoa/VideoPresentationManager.messages.in
M Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm
Log Message:
-----------
[visionOS] MediaPlayer changes while in external playback get stuck in the
wrong rendering mode.
https://bugs.webkit.org/show_bug.cgi?id=293755
rdar://151717489
Reviewed by Andy Estes.
When an HTMLVideoElement is in external playback (a custom LMK mode) and the
media
player changes, the new media player does not receive the inFullscreenOrPiP
state
correctly. Thus, when exiting external playback, the media element short
circuits
the call to the media player's private interface, which means the rendering
mode is
not updated from entity to layer based.
The new media player already does get its inFullscreenOrPip value copied over
from
the fullscreen state of the element, but this does not currently capture whether
the element is in external playback -- which also should be considered to be in
fullscreenOrPip.
To fix, adjust the calculation when creating a new media player to consider
external
state, which requires creating a variable on HTMLVideoElement to store the
state.
Also, synchronize some existing external playback code under the
LINEAR_MEDIA_PLAYER
flag instead of just visionOS, as that is more technically correct as a
requirement
and should have a consistent guard around all external playback code.
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isInFullscreenOrPictureInPicture const):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didEnterExternalPlayback):
(WebCore::HTMLVideoElement::didExitExternalPlayback):
* Source/WebCore/html/HTMLVideoElement.h:
* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.h:
* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.messages.in:
* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:
Canonical link: https://commits.webkit.org/295573@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes