Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 864185353c1e85cba35892a7389a54d4613d0286
https://github.com/WebKit/WebKit/commit/864185353c1e85cba35892a7389a54d4613d0286
Author: Zak Ridouh <[email protected]>
Date: 2026-10-14 (Wed, 14 Oct 2026)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/mac/WKImmediateActionController.mm
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm
Log Message:
-----------
[Site Isolation] Look Up and force click don't work correctly in cross-origin
iframes
https://bugs.webkit.org/show_bug.cgi?id=321331
rdar://130518304
Reviewed by Alex Christensen.
After a force click's hit test moved to a cross-origin iframe's process, its
animation progress and data detector UI
messages still went to the main frame's process, which then kept the mouse up
that ended the force click from reaching
the iframe. Send them to the process that answered the hit test, and apply them
to the frame it hit tested.
Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::immediateActionDidUpdate):
(WebKit::WebPageProxy::immediateActionDidCancel):
(WebKit::WebPageProxy::immediateActionDidComplete):
Send to the process of the hit tested frame. Without a hit test there is
nothing to update, so send nothing.
Also instantiate sendToProcessContainingFrame for the three DataDetectorsDid*UI
messages.
* Source/WebKit/UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
Capture the hit tested frame together with the overlay ID, since the ID only
means something in that frame's process.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
ImmediateActionDidUpdate, ImmediateActionDidCancel, ImmediateActionDidComplete
and DataDetectorsDidHideUI now carry
the hit tested frame's ID.
* Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::immediateActionFrame): Added. Finds the local frame for an ID, if it
belongs to this page.
(WebKit::WebPage::immediateActionDidUpdate):
(WebKit::WebPage::immediateActionDidCancel):
(WebKit::WebPage::immediateActionDidComplete):
(WebKit::WebPage::dataDetectorsDidHideUI): Dispatch the fake mouse move on the
hit tested frame. Still tell the
overlay when the frame is gone.
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm:
(TestWebKitAPI::TEST(SiteIsolation,
MouseUpAfterImmediateActionInCrossOriginIframe)):
Canonical link: https://commits.webkit.org/323775@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications