Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6f450cea7dc661b1cc94e487fd99e5703b7c83c5
https://github.com/WebKit/WebKit/commit/6f450cea7dc661b1cc94e487fd99e5703b7c83c5
Author: Andy Estes <[email protected]>
Date: 2024-03-19 (Tue, 19 Mar 2024)
Changed paths:
M Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm
M Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm
M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
M Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/WKUSDPreviewView.mm
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h
M Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm
Log Message:
-----------
REGRESSION (276177@main): Fullscreen API tests crash with a
UIViewControllerHierarchyInconsistency exception
https://bugs.webkit.org/show_bug.cgi?id=271193
rdar://124974019
Reviewed by Eric Carlson.
276177@main changed how VideoPresentationInterface embeds its player view in
the parent view to
ensure that -addChildViewController: and -didMoveToParentViewController: are
called on the parent
view's view controller. This exposed a bug in
VideoPresentationInterfaceIOS::presentingViewController()
where the API client's presenting view controller would be returned even if the
WKWebView was moved
to a WKFullScreenViewController, resulting in a
UIViewControllerHierarchyInconsistency exception
being thrown.
Resolved this by ensuring
VideoPresentationInterfaceIOS::presentingViewController() returns the
WKFullScreenViewController when in element fullscreen. This is done by
introducing
PageClient::presentingViewController() which returns the
WKFullScreenViewController if in element
fullscreen, otherwise returning UIClient::presentingViewController(). Added
FIXME comments to other
call sites of UIClient::presentingViewController() mentioning that this call
may be incorrect when
in element fullscreen.
* Source/WebKit/UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::takeModelElementFullscreen):
* Source/WebKit/UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::presentViewController):
* Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
* Source/WebKit/UIProcess/Cocoa/VideoPresentationManagerProxy.mm:
(WebKit::VideoPresentationModelContext::presentingViewController):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::startApplePayAMSUISession):
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm:
(WebKit::ARKitCoordinator::startSession):
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::presentingViewController const):
* Source/WebKit/UIProcess/ios/WKUSDPreviewView.mm:
(-[WKUSDPreviewView thumbnailView:wantsToPresentPreviewController:forItem:]):
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::showValidationMessage):
(WebKit::WebPageProxy::Internals::paymentCoordinatorPresentingViewController):
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
* Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController fullScreenViewController]):
Canonical link: https://commits.webkit.org/276356@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes