Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: df5c88e585197caff17c1f372d08a82e5cc46e28
      
https://github.com/WebKit/WebKit/commit/df5c88e585197caff17c1f372d08a82e5cc46e28
  Author: Alex Christensen <[email protected]>
  Date:   2025-02-18 (Tue, 18 Feb 2025)

  Changed paths:
    M Source/WebKit/Shared/API/APIObject.h
    M Source/WebKit/Shared/API/c/WKBase.h
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/API/C/WKPage.h
    M Source/WebKit/UIProcess/API/C/WKPageFullScreenClient.h
    M Source/WebKit/UIProcess/API/C/playstation/WKView.cpp
    M Source/WebKit/UIProcess/API/C/playstation/WKView.h
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
    M Source/WebKit/UIProcess/API/playstation/APIViewClient.h
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
    M Source/WebKit/UIProcess/API/wpe/WPEWebViewLegacy.cpp
    M Source/WebKit/UIProcess/API/wpe/WPEWebViewPlatform.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
    M Source/WebKit/UIProcess/mac/PageClientImplMac.h
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h
    M Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm
    M Source/WebKit/UIProcess/playstation/PageClientImpl.cpp
    M Source/WebKit/UIProcess/playstation/PageClientImpl.h
    M Source/WebKit/UIProcess/playstation/PlayStationWebView.cpp
    M Source/WebKit/UIProcess/playstation/PlayStationWebView.h
    M Source/WebKit/UIProcess/win/PageClientImpl.cpp
    M Source/WebKit/UIProcess/win/PageClientImpl.h
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in
    M Tools/MiniBrowser/playstation/WebViewWindow.cpp
    M Tools/WebKitTestRunner/TestController.cpp
    M Tools/WebKitTestRunner/TestController.h
    M Tools/WebKitTestRunner/TestInvocation.cpp

  Log Message:
  -----------
  Use sendWithAsyncReply for WebFullScreenManagerProxy::BeganExitFullScreen
rdar://144813733
https://bugs.webkit.org/show_bug.cgi?id=287664

Reviewed by Eric Carlson.

WebFullScreenManager::DidExitFullScreen should only be called as a reply to 
BeganExitFullScreen,
so I replaced it with a completion handler.  There are a few cases where we 
used to proactively
send this reply to a question that had not yet been asked by the web content 
process to the UI
process, but now we wait for the question to be asked before sending the reply. 
 The correctness
of such cases is tested by unit tests like 
WKWebViewCloseAllMediaPresentations.ElementFullscreen.

This is a step towards getting fullscreen working properly with site isolation.

I also may have fixed the PlayStation fullscreen code by changing the default 
from failing to enter
to succeeding to enter immediately.  If they want an async task to happen 
during the entering
time, they can add a listener object.

* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(RunJavaScriptConfirmResultListener::create):
(RunJavaScriptConfirmResultListener::~RunJavaScriptConfirmResultListener):
(RunJavaScriptConfirmResultListener::call):
(RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener):
(WKPageSetFullScreenClientForTesting):
(WKPageDidExitFullScreen): Deleted.
(WebKit::RunJavaScriptConfirmResultListener::create): Deleted.
(WebKit::RunJavaScriptConfirmResultListener::~RunJavaScriptConfirmResultListener):
 Deleted.
(WebKit::RunJavaScriptConfirmResultListener::call): Deleted.
(WebKit::RunJavaScriptConfirmResultListener::RunJavaScriptConfirmResultListener):
 Deleted.
* Source/WebKit/UIProcess/API/C/WKPage.h:
* Source/WebKit/UIProcess/API/C/WKPageFullScreenClient.h:
* Source/WebKit/UIProcess/API/C/playstation/WKView.cpp:
(WKViewDidExitFullScreen):
(WKViewSetViewClient):
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.h:
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDidExitFullScreen):
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:
* Source/WebKit/UIProcess/API/wpe/WPEWebViewLegacy.cpp:
(WKWPE::ViewLegacy::ViewLegacy):
* Source/WebKit/UIProcess/API/wpe/WPEWebViewPlatform.cpp:
(WKWPE::ViewPlatform::didExitFullScreen):
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::beganExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen): Deleted.
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.messages.in:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController 
beganExitFullScreenWithInitialFrame:finalFrame:completionHandler:]):
(-[WKFullScreenWindowController _completedExitFullScreen:]):
(-[WKFullScreenWindowController _exitFullscreenImmediately]):
(-[WKFullScreenWindowController _startToDismissFullscreenChanged:]):
(-[WKFullScreenWindowController _dismissFullscreenViewController:]):
(-[WKFullScreenWindowController 
beganExitFullScreenWithInitialFrame:finalFrame:]): Deleted.
(-[WKFullScreenWindowController _completedExitFullScreen]): Deleted.
(-[WKFullScreenWindowController _dismissFullscreenViewController]): Deleted.
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.h:
* Source/WebKit/UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController 
beganExitFullScreenWithInitialFrame:finalFrame:completionHandler:]):
(-[WKFullScreenWindowController 
finishedExitFullScreenAnimationAndExitImmediately:]):
(-[WKFullScreenWindowController 
beganExitFullScreenWithInitialFrame:finalFrame:]): Deleted.
* Source/WebKit/UIProcess/playstation/PageClientImpl.cpp:
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/playstation/PageClientImpl.h:
* Source/WebKit/UIProcess/playstation/PlayStationWebView.cpp:
(WebKit::PlayStationWebView::willEnterFullScreen):
(WebKit::PlayStationWebView::beganExitFullScreen):
(WebKit::PlayStationWebView::didExitFullScreen): Deleted.
* Source/WebKit/UIProcess/playstation/PlayStationWebView.h:
* Source/WebKit/UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::beganExitFullScreen):
* Source/WebKit/UIProcess/win/PageClientImpl.h:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::exitFullScreenForElement):
(WebKit::WebFullScreenManager::willExitFullScreen):
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.messages.in:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::willEnterFullScreen):
(WTR::TestController::beganExitFullScreen):
(WTR::TestController::finishFullscreenExit):
(WTR::TestController::resetStateToConsistentValues):
* Tools/WebKitTestRunner/TestController.h:
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

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