Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4fb78297f66382824d32daea416bcdccc940a801
      
https://github.com/WebKit/WebKit/commit/4fb78297f66382824d32daea416bcdccc940a801
  Author: Andy Estes <[email protected]>
  Date:   2024-04-23 (Tue, 23 Apr 2024)

  Changed paths:
    M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm

  Log Message:
  -----------
  [visionOS] When transitioning from video fullscreen to element fullscreen, 
the element fullscreen window is not frontmost
https://bugs.webkit.org/show_bug.cgi?id=273100
rdar://126642251

Reviewed by Wenson Hsieh and Aditya Keerthi.

When entering video fullscreen LinearMediaKit changes the client scene's 
windows' transform3D, then
fails to restore them to their original values when exiting fullscreen. As a 
result, the element
fullscreen window may no longer be frontmost when exiting back to element 
fullscreen.

This issue was originally worked around in 277031@main by exiting element 
fullscreen when entering
video fullscreen, but this was suboptimal since users expect to return to 
element fullscreen if
that's the state they were in when entering video fullscreen. This change 
improves the workaround by
instead restoring the expected transform3Ds on both the element fullscreen 
window and WKWebView's
window when exiting video fullscreen.

Note that this change also removes dead code in -[WKContentViewInteraction 
_did(Enter|Exit)Fullscreen]
so that hooking up PageClientImpl::did(Enter|Exit)Fullscreen does not cause an 
unintended behavior
change.

* Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionManagerProxy::setVideoReceiverEndpoint):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didExitFullscreen):
(WebKit::PageClientImpl::didEnterFullscreen): Deleted.
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didEnterFullscreen]): Deleted.
(-[WKContentView _didExitFullscreen]): Deleted.
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController didExitFullscreen]):

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