Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 029609b8191eeaa7777cc45b8c05f0476ccd5fc6
https://github.com/WebKit/WebKit/commit/029609b8191eeaa7777cc45b8c05f0476ccd5fc6
Author: Roberto Rodriguez <[email protected]>
Date: 2026-09-28 (Mon, 28 Sep 2026)
Changed paths:
A
LayoutTests/http/tests/site-isolation/ios/dblclick-in-cross-site-grandchild-of-scrolled-middle-frame-expected.txt
A
LayoutTests/http/tests/site-isolation/ios/dblclick-in-cross-site-grandchild-of-scrolled-middle-frame.html
A
LayoutTests/http/tests/site-isolation/ios/dblclick-with-element-document-window-listener-in-cross-origin-iframe-expected.txt
A
LayoutTests/http/tests/site-isolation/ios/dblclick-with-element-document-window-listener-in-cross-origin-iframe.html
A
LayoutTests/http/tests/site-isolation/resources/dblclick-listener-variants.html
A
LayoutTests/http/tests/site-isolation/resources/dblclick-target-top-of-grandchild.html
A
LayoutTests/http/tests/site-isolation/resources/scrolled-middle-frame-with-cross-site-dblclick-grandchild.html
A
LayoutTests/http/tests/site-isolation/touch-events/dblclick-nested-cross-origin-frame-in-offset-subframe-expected.txt
A
LayoutTests/http/tests/site-isolation/touch-events/dblclick-nested-cross-origin-frame-in-offset-subframe.html
A
LayoutTests/http/tests/site-isolation/touch-events/resources/nested-ad-reports-dblclick.html
A
LayoutTests/http/tests/site-isolation/touch-events/resources/samesite-offset-container-dblclick.html
M LayoutTests/platform/ios/TestExpectations
M Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h
M Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
M Source/WebKit/UIProcess/ios/WKContentViewInteraction.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 Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
Log Message:
-----------
[Site Isolation] dblclick events do not dispatch from touch in cross-origin
frames on iOS
https://bugs.webkit.org/show_bug.cgi?id=325210
rdar://173882146
Reviewed by Ryosuke Niwa.
With site isolation, double tapping inside a cross-origin iframe never fires
dblclick
because the message only reaches the main frame process.
The message now carries a frame identifier and forwards to whichever process
owns the point
which is the same pattern taps use.
WebPage::handleDoubleTapForDoubleClickAtPoint hit tests
the point and either dispatches there or forwards again, using a helper shared
with
positionInformationForWebPage. That sharing also fixes a bug where a scrolled
middle frame
doubles its own scroll offset when converting a point for a remote child. It
also computes
the global position with globalPositionForSyntheticMouseEvent, which fixes
screenX and screenY
reading relative to the iframe instead of the page.
WebPageProxy::handleDoubleTapForDoubleClickAtPoint keeps its old signature for
an internal
caller and forwards through a new function. The stale-page check now compares
transaction IDs
only within the same process. WebPageProxy also calls notifyActivated on each
frame it forwards
into, so a paste request from a forwarded handler counts as activation.
Tests: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm
http/tests/site-isolation/ios/dblclick-in-cross-site-grandchild-of-scrolled-middle-frame.html
http/tests/site-isolation/ios/dblclick-with-element-document-window-listener-in-cross-origin-iframe.html
http/tests/site-isolation/touch-events/dblclick-nested-cross-origin-frame-in-offset-subframe.html
*
LayoutTests/http/tests/site-isolation/ios/dblclick-in-cross-site-grandchild-of-scrolled-middle-frame-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/ios/dblclick-in-cross-site-grandchild-of-scrolled-middle-frame.html:
Added.
*
LayoutTests/http/tests/site-isolation/ios/dblclick-with-element-document-window-listener-in-cross-origin-iframe-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/ios/dblclick-with-element-document-window-listener-in-cross-origin-iframe.html:
Added.
*
LayoutTests/http/tests/site-isolation/resources/dblclick-listener-variants.html:
Added.
*
LayoutTests/http/tests/site-isolation/resources/dblclick-target-top-of-grandchild.html:
Added.
*
LayoutTests/http/tests/site-isolation/resources/scrolled-middle-frame-with-cross-site-dblclick-grandchild.html:
Added.
*
LayoutTests/http/tests/site-isolation/touch-events/dblclick-nested-cross-origin-frame-in-offset-subframe-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/touch-events/dblclick-nested-cross-origin-frame-in-offset-subframe.html:
Added.
*
LayoutTests/http/tests/site-isolation/touch-events/resources/nested-ad-reports-dblclick.html:
Added.
*
LayoutTests/http/tests/site-isolation/touch-events/resources/samesite-offset-container-dblclick.html:
Added.
* LayoutTests/platform/ios/TestExpectations:
* Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _simulateDoubleClickAtLocation:]):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint):
(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPointInFrame):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _simulateDoubleClickAtLocation:]):
* Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/PositionInformationForWebPage.mm:
(WebKit::remoteUserInputEventDataForHitTestResult):
(WebKit::positionInformationForWebPage):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation,
DblclickWithWindowListenerInSimpleIFrameCrossOrigin)):
(TestWebKitAPI::(SiteIsolation,
DblclickWithWindowListenerInRotatedIFrameCrossOrigin)):
(TestWebKitAPI::(SiteIsolation,
DblclickWithWindowListenerInScaledIFrameCrossOrigin)):
(TestWebKitAPI::(SiteIsolation,
DblclickWithDocumentListenerInSimpleIFrameCrossOrigin)):
(TestWebKitAPI::(SiteIsolation,
DblclickWithDocumentListenerInRotatedIFrameCrossOrigin)):
(TestWebKitAPI::(SiteIsolation,
DblclickWithDocumentListenerInScaledIFrameCrossOrigin)):
Canonical link: https://commits.webkit.org/322133@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications