Branch: refs/heads/safari-7616.1.5-branch
Home: https://github.com/WebKit/WebKit
Commit: 7b7d1ab1e3ce98773c083945b8329d0d17bc5688
https://github.com/WebKit/WebKit/commit/7b7d1ab1e3ce98773c083945b8329d0d17bc5688
Author: Jer Noble <[email protected]>
Date: 2023-03-03 (Fri, 03 Mar 2023)
Changed paths:
M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm
Log Message:
-----------
Cherry-pick 85232d38f6f4. rdar://problem/106112303
REGRESSION(260575@main): [iPad] Crash when navigating to next YouTube video
in fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=253246
rdar://106112303
Reviewed by Tim Horton.
Remove the MESSAGE_CHECK protecting against videoLayerID being zero in
setupFullscreenWithID(). Prior to the
no-double-hosting change, it was impossible to enter this function without
a remote layer host having been
created in the WebContent process. After the no-double-hosting change, the
remote layer host is created in
the GPU process, and may not have been created by the time
setupFullscreenWithID() is called. Once the layer
_is_ created, the videoLayerID is sent to the UI process separately, and
the created hosting layer is updated.
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Canonical link: https://commits.webkit.org/261104@main
Canonical link: https://commits.webkit.org/[email protected]
Commit: 6434292f614546037714ff16f168ba9ad30d61ee
https://github.com/WebKit/WebKit/commit/6434292f614546037714ff16f168ba9ad30d61ee
Author: Jer Noble <[email protected]>
Date: 2023-03-03 (Fri, 03 Mar 2023)
Changed paths:
M Source/WebCore/platform/cocoa/VideoFullscreenChangeObserver.h
M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm
M Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm
M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h
M Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm
Log Message:
-----------
Cherry-pick e64627c9a4d4. rdar://problem/105990736
REGRESSION(260774@main): [iPad] Video turns black after entering element
fullscreen
https://bugs.webkit.org/show_bug.cgi?id=253225
rdar://105990736
Reviewed by Tim Horton.
Prior to "no-double-layer-hosting", the fullscreen machinery would create
an AVPlayerLayerView and AVPlayerLayerViewController
simply to handle the case where the user might exit _element_ fullscreen
when playing a video, and that video may need to
immediately enter picture-in-picture mode. As part of that process, the new
AVPlayerLayerView would "steal" the video
content from an existing layer. This wasn't a problem in the double layer
hosting world; there wasn't anything to steal then,
as the video layer being stolen was empty.
However, in the "no-double-layer-hosting" world, stealing the video layer
results in no video being visible in the WKWebView,
as that video layer is the one inserted into the UI-side compositing tree.
This code could benefit from a complete re-write,
now that there's a pre-existing AVPlayerLayerView in the web compositing
hierarchy. For now, simply work around the problem
by not stealing the video layer prematurely, and by notifying the
VideoFullscreenManagerProxy when PiP has ended and the
video layer can be returned to its rightful owner.
* Source/WebCore/platform/cocoa/VideoFullscreenChangeObserver.h:
* Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::returnToStandby):
* Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::returnToStandby):
(WebKit::VideoFullscreenManagerProxy::returnToStandby):
Canonical link: https://commits.webkit.org/261143@main
Canonical link: https://commits.webkit.org/[email protected]
Compare: https://github.com/WebKit/WebKit/compare/1d89fdbdb2ba...6434292f6145
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes