[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