[webkit-changes] [WebKit/WebKit] c1124e: [iOS] Flash of black while exiting fullscreen on y...
Jer Noble
noreply at github.com
Fri Feb 23 08:31:26 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c1124e4e8f4c4e7282afba3960ac02126b1fa8fc
https://github.com/WebKit/WebKit/commit/c1124e4e8f4c4e7282afba3960ac02126b1fa8fc
Author: Jer Noble <jer.noble at apple.com>
Date: 2024-02-23 (Fri, 23 Feb 2024)
Changed paths:
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
Log Message:
-----------
[iOS] Flash of black while exiting fullscreen on youtube.com
https://bugs.webkit.org/show_bug.cgi?id=269969
rdar://117708957
Reviewed by Jean-Yves Avenard.
A single frame of black is sometimes shown when exiting fullscreen, after the fullscreen
animation completes, but before the WKWebView is visible in its full inline state.
Debugging shows this is due to the call to -makeKeyAndVisible in -_reinsertWebViewUnderPlaceholder.
It's not clear why making the WKWebView's parent window key and visible causes a black flash, but
it's also unnecessary at this point in the animation. Additionally, none of the operations in
-_completedExitFullScreen are wrapped in a CATransaction, so add one that commits once the
WKWebView has finished the repaint after re-inserting it in its original window.
Additionally, Safari will steal the WKWebView out of its fullscreen presentation during layout,
so long as -[WKFullScreenWindowController isFullScreen] returns false. So modify the meaning of
that property to include "WaitingToExit" and "ExitingFullscreen", preventing Safari from stealing
the view until the fullscreen animation completes.
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _reinsertWebViewUnderPlaceholder]):
(-[WKFullScreenWindowController _completedExitFullScreen]):
Canonical link: https://commits.webkit.org/275240@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