Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a69d661df341919c7e9b4b04b4d8bcbd304a3ae0
      
https://github.com/WebKit/WebKit/commit/a69d661df341919c7e9b4b04b4d8bcbd304a3ae0
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2025-02-26 (Wed, 26 Feb 2025)

  Changed paths:
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm

  Log Message:
  -----------
  Restore call to _dismissFullscreenViewController after 290536@main
https://bugs.webkit.org/show_bug.cgi?id=288562
rdar://145513632

Reviewed by Jer Noble.

In 290536@main I made it so that WebFullScreenManager::didExitFullScreen is 
called
as a response to Messages::WebFullScreenManagerProxy::BeganExitFullScreen, 
which means
there is no way to call it in the web process without the web process 
initiating it.
This is conceptually correct.  The consequence of this is that 
_dismissFullscreenViewController
needs to be called with a CompletionHandler which it gives to 
_completedExitFullScreen
which it calls instead of calling WebFullScreenManagerProxy::didExitFullScreen, 
which
no longer exists.  This is all good so far.

Before 290536@main, _startToDismissFullscreenChanged used to also call
_dismissFullscreenViewController, but I thought it shouldn't any more because 
it is no
longer doing so as a response to 
Messages::WebFullScreenManagerProxy::BeganExitFullScreen.
Instead, we should initiate the fullscreen exiting process by calling 
requestExitFullScreen
which seems like the logical replacement.  We are telling the web process to 
start exiting,
which will eventually send 
Messages::WebFullScreenManagerProxy::BeganExitFullScreen to
which we will respond.  However, this caused the gesture-based fullscreen exits 
to fail.
I verified manually that we need to both call requestExitFullScreen to start 
this process
AND call _dismissFullscreenViewController to immediately do the UI process 
cleanup with an
empty lambda "reply".  The web process will eventually ask the UI process to 
exit, and
the UI process will tell it that it already has.

* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _startToDismissFullscreenChanged:]):

Canonical link: https://commits.webkit.org/291123@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to