[webkit-changes] [WebKit/WebKit] 70014c: [visionOS] Optimize the QuickLook fullscreen trans...
Etienne Segonzac
noreply at github.com
Fri Jul 12 01:31:19 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 70014c526e8ece8ced6099c575ac1ec32d75f353
https://github.com/WebKit/WebKit/commit/70014c526e8ece8ced6099c575ac1ec32d75f353
Author: Etienne Segonzac <sgz at apple.com>
Date: 2024-07-12 (Fri, 12 Jul 2024)
Changed paths:
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h
M Source/WebKit/WebProcess/WebPage/WebPage.h
Log Message:
-----------
[visionOS] Optimize the QuickLook fullscreen transition
https://bugs.webkit.org/show_bug.cgi?id=275686
<rdar://129195533>
Reviewed by Mike Wyrzykowski.
Scene swapping takes care of the transition when using QuickLook
fullscreen. In order to improve performance and avoid memory spikes due
to DynamicContentScalingDisplayList generation, introduce a new
fullscreen code path where we freeze the layer tree and skip the
expensive WebView snapshoting/reparenting.
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController exitFullScreen]):
Introduce new QuickLook fullscreen branches with early returns.
(-[WKFullScreenWindowController _configureSpatialFullScreenTransition]):
(-[WKFullScreenWindowController _performSpatialFullScreenTransition:completionHandler:]):
Remove the old QuickLook fullscreen branches.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
Introduce a new `LayerTreeFreezeReason`.
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::enterFullScreenForElement):
(WebKit::WebFullScreenManager::didExitFullScreen):
Freeze the layer tree while using QuickLook fullscreen.
Canonical link: https://commits.webkit.org/280896@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list