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

Reply via email to