[webkit-changes] [WebKit/WebKit] dc8a2c: [iPad] Vimeo video goes black navigating from PiP ...

Jer Noble noreply at github.com
Fri Apr 7 06:56:15 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc8a2c99f4be79db635a93727b0a1532a5edfc81
      https://github.com/WebKit/WebKit/commit/dc8a2c99f4be79db635a93727b0a1532a5edfc81
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm

  Log Message:
  -----------
  [iPad] Vimeo video goes black navigating from PiP back to full screen
https://bugs.webkit.org/show_bug.cgi?id=255145
rdar://107592139

Reviewed by Per Arne Vollan.

Vimeo gets into a state where it attempts to enter Element Fullscreen while the video
is in picture-in-picture, which causes PiP mode to exit, returning the video to the newly
fullscreened page. This video is simultaneously made "standby", i.e., it will enter PiP
when the browser is "swiped" to the background. This causes the state machine of the
VideoFullscreenInterfaceAVKit to get confused, as it's exiting one mode (PiP) at the
same time as it's entering another (standby).

This is the most minimal change which will un-break this path, however there remain
a few usability issues afterward. Because the WebContent process issues both a enter-
fullscreen and exit-fullscreen command, it gets stuck in a state where it thinks its
still animating into (or out of) fullscreen and doesn't allow any new fullscreen mode
changes to be issued. This has the effect of preventing the video element from going
into PiP or native fullscreen mode again.

* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):

Canonical link: https://commits.webkit.org/262703@main




More information about the webkit-changes mailing list