[webkit-changes] [WebKit/WebKit] 0be7e2: [iOS] Fullscreen video becomes unresponsive after ...

Jer Noble noreply at github.com
Thu Oct 26 23:47:02 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0be7e2dbbc9c1f2387649d188a61056e0d692cd5
      https://github.com/WebKit/WebKit/commit/0be7e2dbbc9c1f2387649d188a61056e0d692cd5
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-10-26 (Thu, 26 Oct 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cocoa/NullVideoFullscreenInterface.h
    M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm
    M Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm
    M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm

  Log Message:
  -----------
  [iOS] Fullscreen video becomes unresponsive after repeated PiP operations
https://bugs.webkit.org/show_bug.cgi?id=263656
rdar://117099076

Reviewed by Eric Carlson.

Entering and exiting PiP and element fullscreen can cause confusion when restoring
the element fullscreen presentation, e.g. when the user choses the "restore" button
in the iOS picture-in-picture window. This is because the "controls manager" interface
(i.e., the interface that represents the "now playing" video element) may be different
than the interface currently being restored.

Add a new method to VideoPresentationManagerProxy, returningToStandbyInterface(), which
returns the interface which is currently awaiting confirmation that the element fullscreen
restoration process has completed.

Separately, do not disable AVKit controls during the AVKit fullscreen portion of this
process. This has the effect of allowing the user to tap on the AVKit fullscreen presentation
and see AVKit provided controls before the element fullscreen presentation completes,
but it also allows the user to dismiss the AVKit fullscreen presentation if the element
fullscreen presentation fails for any reason.

* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm:
(WebKit::VideoPresentationManagerProxy::returningToStandbyInterface const):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController didExitPictureInPicture]):

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




More information about the webkit-changes mailing list