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

Reply via email to