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