Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7498717ae81f079f390bfd2f571c77b3196c72ac
https://github.com/WebKit/WebKit/commit/7498717ae81f079f390bfd2f571c77b3196c72ac
Author: Alex Christensen <[email protected]>
Date: 2026-09-23 (Wed, 23 Sep 2026)
Changed paths:
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxyInternals.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
M Source/WebKit/UIProcess/mac/PageClientImplMac.h
M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
M Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm
M Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.h
M Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.mm
M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
Long pressing on an image in a site isolated iframe should select and create
context menu as it did before site isolation
https://bugs.webkit.org/show_bug.cgi?id=324602
rdar://185926851
Reviewed by Sihui Liu.
A few things were being sent only to the main frame process.
A few things were returning early if the main frame wasn't a LocalFrame.
We needed another place where, if your hit test result hit a RemoteFrame,
we would send a RemoteUserInputEventData over IPC to tell the UI process
to continue in another process with transformed coordinates.
Pass a FrameIdentifier around in a few more places, and make the
WebPageProxy more responsible for keeping the state for waiting for
a response to Messages::WebPage::RequestPositionInformation.
I verified on an iPad that this fixes the issue in the radar.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didReceivePositionInformation):
(WebKit::WebPageProxy::outstandingPositionInformationReply const):
(WebKit::WebPageProxy::requestPositionInformation):
(WebKit::WebPageProxy::requestPositionInformationInFrame):
(WebKit::WebPageProxy::takeOutstandingPositionInformationReply):
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxyInternals.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::positionInformationDidChange):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView requestAsynchronousPositionInformationUpdate:]):
(-[WKContentView _hasValidOutstandingPositionInformationRequest:]):
(-[WKContentView _invalidateCurrentPositionInformation]):
(-[WKContentView _positionInformationDidChange:fromFrame:]):
(-[WKContentView actionSheetAssistant:willStartInteractionWithElement:]):
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteraction:completion:]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _positionInformationDidChange:]): Deleted.
(-[WKContentView cleanUpInteraction]):
(-[WKContentView doAfterPositionInformationUpdate:forRequest:]):
* Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startInteractionWithPositionInformation):
(WebKit::WebPageProxy::stopInteraction):
(WebKit::WebPageProxy::performActionOnElement):
(WebKit::WebPageProxy::performActionOnElements):
* Source/WebKit/UIProcess/mac/PageClientImplMac.h:
* Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::positionInformationDidChange):
* Source/WebKit/WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::showDataDetectorsUIForElement):
* Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.mm:
(WebKit::platformBitmapSizeCap):
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
(WebKit::selectionPositionInformation):
(WebKit::textInteractionPositionInformation):
(WebKit::positionInformationForWebPage):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::positionInformation):
(WebKit::convertPositionInformationToMainFrameCoordinates):
(WebKit::WebPage::requestPositionInformation):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::startInteractionWithElementContextOrPosition):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation,
PositionInformationForImageInCrossOriginIframe)):
(TestWebKitAPI::(SiteIsolation,
SynchronousPositionInformationForTextInCrossOriginIframe)):
Canonical link: https://commits.webkit.org/321742@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications