Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d63124984deb954adf67ad16a58498ec09e92507
https://github.com/WebKit/WebKit/commit/d63124984deb954adf67ad16a58498ec09e92507
Author: Andy Estes <[email protected]>
Date: 2025-05-23 (Fri, 23 May 2025)
Changed paths:
M
Source/WebCore/Modules/modern-media-controls/controls/vision-layout-traits.js
M
Source/WebCore/Modules/modern-media-controls/controls/vision-media-controls.js
M Source/WebCore/Modules/modern-media-controls/main.js
M Source/WebKit/WebKitSwift/LinearMediaKit/LinearMediaPlayer.swift
Log Message:
-----------
[visionOS] When entering video fullscreen, fullscreen-style media controls
briefly appear over the <video> element
https://bugs.webkit.org/show_bug.cgi?id=293502
rdar://150825670
Reviewed by Richard Robinson.
When entering video fullscreen, two issues caused a <video> element's inline
controls to briefly be
replaced by fullscreen-style controls before the fullscreen window appeared:
1. The showsPlaybackControls property on LinearMediaPlayer was initialized to
true, which
instructed LMPlayableViewController to show its controls as soon as it is
inserted into the web
view's hierarchy, overlapping the inline media controls.
2. Based on visionOS layout traits, built-in media controls would transition
from inline to
fullscreen style when the video presentation mode changed to fullscreen,
expecting to be
presented in an element fullscreen window.
Resolved (1) by initializing showsPlaybackControls to false and relying on
VideoPresentationInterfaceIOS to set it to true at the appropriate time.
Resolved (2) by removing
the fullscreen style of visionOS built-in media controls. This style has not
been necessary ever
since we implemented support for native video fullscreen in visionOS 2.0.
* Source/WebCore/Modules/modern-media-controls/controls/vision-layout-traits.js:
(VisionLayoutTraits.prototype.mediaControlsClass):
Changed to always use VisionInlineMediaControls.
*
Source/WebCore/Modules/modern-media-controls/controls/vision-media-controls.js:
(VisionInlineMediaControls):
(VisionFullscreenMediaControls.prototype._createControls): Deleted.
(VisionFullscreenMediaControls.prototype._performLayout): Deleted.
(VisionFullscreenMediaControls.prototype._performVolumeContainerLayout):
Deleted.
(VisionFullscreenMediaControls.prototype._topRightControlsBarChildren): Deleted.
(VisionFullscreenMediaControls.prototype._performBottomBarLayout): Deleted.
(VisionFullscreenMediaControls): Deleted.
Removed VisionFullscreenMediaControls.
* Source/WebCore/Modules/modern-media-controls/main.js:
Drive-by fix: corrected a comment that mentioned the wrong function name in
HTMLMediaElement.
* Source/WebKit/WebKitSwift/LinearMediaKit/LinearMediaPlayer.swift:
Initialized showsPlaybackControls to false.
Canonical link: https://commits.webkit.org/295375@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