Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f87b7bf71aefae08144aa6948d677afe9a366cd
      
https://github.com/WebKit/WebKit/commit/7f87b7bf71aefae08144aa6948d677afe9a366cd
  Author: Aditya Keerthi <[email protected]>
  Date:   2024-03-13 (Wed, 13 Mar 2024)

  Changed paths:
    M Source/WebKit/Shared/FullScreenMediaDetails.h
    M Source/WebKit/Shared/FullScreenMediaDetails.serialization.in
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp

  Log Message:
  -----------
  REGRESSION (274816@main): [visionOS] Fullscreen window size does not always 
match the video's aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=270897
rdar://124506779

Reviewed by Abrar Rahman Protyasha.

Fullscreen video on visionOS is intended to be presented at the aspect ratio of
the video element. In cases where the video element is not actually the 
fullscreen
element, the "main" video element is used, as determined by the heuristic in
`WebFullScreenManager::updateMainVideoElement`. If a "main" video element 
exists,
it's size is sent to the UI process for appropriate window sizing.

To add a distinct path for image fullscreen on visionOS, 274816@main refactored
fullscreen presentation logic to specify media type (image/video) and video size
in a single struct. However, in this refactoring, the logic for size 
determination
was additionally gated on whether or not the fullscreen element was a video 
element,
and not simply the existence of a "main" video element.

Fix by splitting up the "video element is fullscreen" and "the fullscreen 
element
contains a prominent video" cases by introducing a new 
`FullScreenMediaDetails::Type`,
ensuring the size is sent over in both cases. The distinction between the two
cases is necessary, as `FullScreenMediaDetails::Type::Video` is used further 
down
the line, to determine whether native, UI-process side controls should be shown.

* Source/WebKit/Shared/FullScreenMediaDetails.h:
* Source/WebKit/Shared/FullScreenMediaDetails.serialization.in:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::enterFullScreenForElement):

Do not check `is<HTMLVideoElement>(element)` prior to populating the details,
as the size should always be specified if there is a "main" video element.

Canonical link: https://commits.webkit.org/276059@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