Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8df98d581790775b81cebfeec4469d3c2224a001
      
https://github.com/WebKit/WebKit/commit/8df98d581790775b81cebfeec4469d3c2224a001
  Author: Alex Christensen <[email protected]>
  Date:   2025-01-29 (Wed, 29 Jan 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fullscreen/event-listener-prefixed-unprefixed-document.html
    M LayoutTests/fullscreen/exit-full-screen-video-crash.html
    M LayoutTests/fullscreen/full-screen-enter-while-exiting-expected.txt
    M LayoutTests/fullscreen/full-screen-enter-while-exiting.html
    M LayoutTests/fullscreen/full-screen-min-max-width-height.html
    M LayoutTests/fullscreen/fullscreen-enter-bottom-padding-animation.html
    M 
LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice-expected.txt
    M 
LayoutTests/media/webkit-media-controls-not-visible-after-exiting-fullscreen.html
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Source/WebKit/Headers.cmake
    M Source/WebKit/Modules/OSX_Private.modulemap
    M Source/WebKit/Modules/iOS_Private.modulemap
    M Source/WebKit/Shared/API/c/wpe/WebKit.h
    M Source/WebKit/Sources.txt
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/API/C/WKPage.h
    A Source/WebKit/UIProcess/API/C/WKPageFullScreenClient.h
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/gtk/PageClientImpl.h
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
    M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
    M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
    M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp
    M Source/WebKit/UIProcess/WebFullScreenManagerProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/mac/PageClientImplMac.h
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/UIProcess/playstation/PageClientImpl.cpp
    M Source/WebKit/UIProcess/playstation/PageClientImpl.h
    M Source/WebKit/UIProcess/win/PageClientImpl.cpp
    M Source/WebKit/UIProcess/win/PageClientImpl.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h
    R 
Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h
    R 
Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp
    R 
Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPageInternals.h
    M Tools/DumpRenderTree/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
    M Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
    M Tools/WebKitTestRunner/TestController.cpp
    M Tools/WebKitTestRunner/TestController.h
    M Tools/WebKitTestRunner/TestInvocation.cpp
    M Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm

  Log Message:
  -----------
  Remove InjectedBundlePageFullScreenClient
rdar://143581808
https://bugs.webkit.org/show_bug.cgi?id=286491

Reviewed by Jer Noble.

It was only used for WebKitTestRunner.
This makes us test functionality that is closer to what users actually see.
It also moves our test infrastructure to the UI process, which makes it
more straightforward to test fullscreen with site isolation.

A few minimal test changes were needed.  First, in order to make delegate 
callbacks
that used to be synchronous happen in a deterministic order, I needed to add
a call to await testRunner.updatePresentation() in a few places because
WebFullScreenManagerProxy::beganEnterFullScreen has a call to
WebPageProxy::callAfterNextPresentationUpdate in it, so the client is not called
until after a presentation update.  The test 
fullscreen/exit-full-screen-video-crash.html
needed a testRunner.waitUntilDone/notifyDone pair because the promises that are 
awaited
are no longer resolved synchronously.  The test 
fullscreen/full-screen-enter-while-exiting.html
had a lot of custom test infrastructure in internals and testRunner that used 
the
injected bundle a lot.  I replaced it with a call to 
testRunner.waitBeforeFinishingFullscreenExit
and a call to testRunner.finishFullscreenExit after we verify that we hit the
webkitfullscreenerror callback that happens when an element fullscreen is 
requested
during the transition away from fullscreen, which error callback was added in
the change that introduced that test (231317@main).

A few WPT tests, especially in 
imported/w3c/web-platform-tests/html/semantics/popovers,
became flaky or fail in different ways now that the fullscreen API callbacks 
are actually
asynchronous.  These tests already show these issues on wpt.fyi.  This change
makes WebKitTestRunner more similar to a real browser, which reveals these 
failures.

* LayoutTests/fullscreen/event-listener-prefixed-unprefixed-document.html:
* LayoutTests/fullscreen/exit-full-screen-video-crash.html:
* LayoutTests/fullscreen/full-screen-enter-while-exiting-expected.txt:
* LayoutTests/fullscreen/full-screen-enter-while-exiting.html:
* LayoutTests/fullscreen/full-screen-min-max-width-height.html:
* LayoutTests/fullscreen/fullscreen-enter-bottom-padding-animation.html:
* 
LayoutTests/imported/w3c/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice-expected.txt:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::webkitWillEnterFullScreenForElement): Deleted.
(WebCore::Internals::webkitDidEnterFullScreenForElement): Deleted.
(WebCore::Internals::webkitWillExitFullScreenForElement): Deleted.
(WebCore::Internals::webkitDidExitFullScreenForElement): Deleted.
(WebCore::Internals::isAnimatingFullScreen const): Deleted.
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Headers.cmake:
* Source/WebKit/Modules/OSX_Private.modulemap:
* Source/WebKit/Modules/iOS_Private.modulemap:
* Source/WebKit/Shared/API/c/wpe/WebKit.h:
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageSetFullScreenClientForTesting):
(WKPageDidEnterFullScreen):
(WKPageWillExitFullScreen):
(WKPageDidExitFullScreen):
(WKPageSaveScrollPositionForFullScreen):
(WKPageRestoreScrollPositionAfterFullScreen):
* Source/WebKit/UIProcess/API/C/WKPage.h:
* Source/WebKit/UIProcess/API/C/WKPageFullScreenClient.h: Added.
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/API/gtk/PageClientImpl.h:
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::attachToNewClient):
* Source/WebKit/UIProcess/WebFullScreenManagerProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::fullScreenManagerProxyClient):
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::fullScreenManagerProxyClient):
* Source/WebKit/UIProcess/playstation/PageClientImpl.cpp:
(WebKit::PageClientImpl::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/playstation/PageClientImpl.h:
* Source/WebKit/UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::setFullScreenClientForTesting):
* Source/WebKit/UIProcess/win/PageClientImpl.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::supportsFullScreenForElement):
(WebKit::WebFullScreenManager::enterFullScreenForElement):
(WebKit::WebFullScreenManager::exitFullScreenForElement):
(WebKit::WebFullScreenManager::willEnterFullScreen):
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
(WebKit::WebFullScreenManager::setAnimatingFullScreen):
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetFullScreenClient): Deleted.
(WKBundlePageWillEnterFullScreen): Deleted.
(WKBundlePageDidEnterFullScreen): Deleted.
(WKBundlePageWillExitFullScreen): Deleted.
(WKBundlePageDidExitFullScreen): Deleted.
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePageFullScreenClient.h: 
Removed.
* 
Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp: 
Removed.
* Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h: 
Removed.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
(WebKit::WebPage::closeFullScreen):
(WebKit::WebPage::initializeInjectedBundleFullScreenClient): Deleted.
(WebKit::WebPage::injectedBundleFullScreenClient): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPageInternals.h:
* Tools/DumpRenderTree/TestRunner.cpp:
(alwaysResolvePromiseCallback):
(TestRunner::staticFunctions):
(flushConsoleLogsCallback): Deleted.
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::InjectedBundlePage):
(WTR::InjectedBundlePage::supportsFullScreen): Deleted.
(WTR::InjectedBundlePage::enterFullScreenForElement): Deleted.
(WTR::InjectedBundlePage::exitFullScreenForElement): Deleted.
(WTR::InjectedBundlePage::beganEnterFullScreen): Deleted.
(WTR::InjectedBundlePage::beganExitFullScreen): Deleted.
(WTR::InjectedBundlePage::closeFullScreen): Deleted.
* Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::dumpFullScreenCallbacks):
(WTR::TestRunner::updatePresentation):
(WTR::TestRunner::waitBeforeFinishingFullscreenExit):
(WTR::TestRunner::finishFullscreenExit):
(WTR::TestRunner::setEnterFullscreenForElementCallback): Deleted.
(WTR::TestRunner::callEnterFullscreenForElementCallback): Deleted.
(WTR::TestRunner::setExitFullscreenForElementCallback): Deleted.
(WTR::TestRunner::callExitFullscreenForElementCallback): Deleted.
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::dumpFullScreenCallbacks): Deleted.
(WTR::TestRunner::shouldDumpFullScreenCallbacks const): Deleted.
(WTR::TestRunner::setHasCustomFullScreenBehavior): Deleted.
(WTR::TestRunner::hasCustomFullScreenBehavior const): Deleted.
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::willEnterFullScreen):
(WTR::TestController::beganEnterFullScreen):
(WTR::TestController::exitFullScreen):
(WTR::TestController::beganExitFullScreen):
(WTR::TestController::finishFullscreenExit):
(WTR::TestController::createOtherPlatformWebView):
(WTR::TestController::updatePresentation):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didReceiveAsyncMessageFromInjectedBundle):
* Tools/WebKitTestRunner/TestController.h:
(WTR::TestController::dumpFullScreenCallbacks):
(WTR::TestController::waitBeforeFinishingFullscreenExit):
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
* Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::updatePresentation):

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