Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0be7e2dbbc9c1f2387649d188a61056e0d692cd5
      
https://github.com/WebKit/WebKit/commit/0be7e2dbbc9c1f2387649d188a61056e0d692cd5
  Author: Jer Noble <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to