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

Reply via email to