Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3f3fcdbd0b96c559b4de3a53c56aefe356c09653
      
https://github.com/WebKit/WebKit/commit/3f3fcdbd0b96c559b4de3a53c56aefe356c09653
  Author: Joshua Hoffman <[email protected]>
  Date:   2024-12-06 (Fri, 06 Dec 2024)

  Changed paths:
    A 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-resolving-remote-frame-expected.txt
    A 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-resolving-remote-frame.html
    A 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-returns-remote-frame-expected.txt
    A 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-returns-remote-frame.html
    A LayoutTests/http/tests/site-isolation/resources/iframe.html
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/accessibility/AXCoreObject.cpp
    M Source/WebCore/accessibility/AXCoreObject.h
    M Source/WebCore/accessibility/AXRemoteFrame.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityScrollView.cpp
    M Source/WebCore/accessibility/AccessibilityScrollView.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Source/WebCore/page/ChromeClient.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp
    M Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl
    M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

  Log Message:
  -----------
  AX: [Site Isolation] support hit testing
https://bugs.webkit.org/show_bug.cgi?id=284144
rdar://141022733

Reviewed by Tyler Wilcock.

Two updates had to be made to hit testing to support site isolation/remote 
frames:
(1) Offset the hit test point by the remote frame offset.
(2) Return the remote frame, when applicable, from elementAccessibilityHitTest.

To validate hit testing works as expected, new AccessibilityUIElement APIs were 
added.
The first, `elementAtPointWithRemoteElementForTesting`, returns an 
AXRemoteElement
instead of a platform element, so that layout tests can check if something is a 
remote
element. The other, `elementAtPointResolvingRemoteFrameForTesting`, simulates 
how ATs
will resolve remote elements, by sending IPC messages to the remote frame via 
the UI
process. This method returns a debug string, to make validation easier.

Two new tests were added to verify hit testing behavior, using these new 
methods.

* 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-resolving-remote-frame-expected.txt:
 Added.
* 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-resolving-remote-frame.html:
 Added.
* 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-returns-remote-frame-expected.txt:
 Added.
* 
LayoutTests/http/tests/site-isolation/accessibility/hit-test-returns-remote-frame.html:
 Added.
* LayoutTests/http/tests/site-isolation/resources/iframe.html: Added.
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::AXCoreObject::infoStringForTesting const):
* Source/WebCore/accessibility/AXCoreObject.h:
* Source/WebCore/accessibility/AXRemoteFrame.h:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::dbgInternal const):
(WebCore::AccessibilityObject::elementAccessibilityHitTest const):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityHitTest const):
* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addRemoteFrameChild):
* Source/WebCore/accessibility/AccessibilityScrollView.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h:
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(attributeValueForTesting):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper 
_accessibilityHitTest:returnPlatformElements:]):
(-[WebAccessibilityObjectWrapper 
accessibilityHitTestResolvingRemoteFrame:callback:]):
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::resolveAccessibilityHitTestForTesting):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resolveAccessibilityHitTestForTesting):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::resolveAccessibilityHitTestForTesting):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::resolveAccessibilityHitTestForTesting):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::elementAtPointWithRemoteElementForTesting):
(WTR::elementAtPointResolvingRemoteFrameForTesting):
(WTR::AccessibilityUIElement::isRemoteFrame const):
* Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::attributeValue):
(WTR::AccessibilityUIElement::elementAtPointWithRemoteElementForTesting):
(WTR::AccessibilityUIElement::elementAtPointResolvingRemoteFrameForTesting):
(WTR::AccessibilityUIElement::isRemoteFrame const):

Canonical link: https://commits.webkit.org/287474@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to