Title: [288741] trunk/Source/WebKit
Revision
288741
Author
[email protected]
Date
2022-01-28 08:09:03 -0800 (Fri, 28 Jan 2022)

Log Message

AX: Isolated tree object frames no longer encode content offsets, so hit testing should be updated accordingly
https://bugs.webkit.org/show_bug.cgi?id=235726

Reviewed by Chris Fleizach.

In -[WKAccessibilityWebPageObjectMac accessibilityHitTest], we have a special isolated tree case:

// Isolated tree frames have the offset encoded into them so we don't need to undo here.
#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();
#endif

The statement in the comment no longer seems to be true, as not applying this content offset results
in hit testing working incorrectly (the point given to WebCore is too small).

This is because isolated tree hit testing used to use relative frames:

https://github.com/WebKit/WebKit/blob/f5525921aac090ca9544cce2a3ac28e38f92c9ba/Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp#L115

But now doesn't, instead deferring to the live, main-thread AX object, which doesn't use relative frames:

https://github.com/WebKit/WebKit/blob/4221a510fe4678cf1a03e5c06878cf2d3f0c1738/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L814

This patch removes this isolated-tree-specific behavior.

* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (288740 => 288741)


--- trunk/Source/WebKit/ChangeLog	2022-01-28 16:00:32 UTC (rev 288740)
+++ trunk/Source/WebKit/ChangeLog	2022-01-28 16:09:03 UTC (rev 288741)
@@ -1,3 +1,33 @@
+2022-01-28  Tyler Wilcock  <[email protected]>
+
+        AX: Isolated tree object frames no longer encode content offsets, so hit testing should be updated accordingly
+        https://bugs.webkit.org/show_bug.cgi?id=235726
+
+        Reviewed by Chris Fleizach.
+
+        In -[WKAccessibilityWebPageObjectMac accessibilityHitTest], we have a special isolated tree case:
+
+        // Isolated tree frames have the offset encoded into them so we don't need to undo here.
+        #if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
+            applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();
+        #endif
+
+        The statement in the comment no longer seems to be true, as not applying this content offset results
+        in hit testing working incorrectly (the point given to WebCore is too small).
+
+        This is because isolated tree hit testing used to use relative frames:
+
+        https://github.com/WebKit/WebKit/blob/f5525921aac090ca9544cce2a3ac28e38f92c9ba/Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp#L115
+
+        But now doesn't, instead deferring to the live, main-thread AX object, which doesn't use relative frames:
+
+        https://github.com/WebKit/WebKit/blob/4221a510fe4678cf1a03e5c06878cf2d3f0c1738/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L814
+
+        This patch removes this isolated-tree-specific behavior.
+
+        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
+        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
+
 2022-01-27  Aditya Keerthi  <[email protected]>
 
         Introduce WebFoundTextRange and WebFoundTextRangeController to support restorable find results

Modified: trunk/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm (288740 => 288741)


--- trunk/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm	2022-01-28 16:00:32 UTC (rev 288740)
+++ trunk/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm	2022-01-28 16:09:03 UTC (rev 288741)
@@ -276,10 +276,6 @@
         // Some plugins may be able to figure out the scroll position and inset on their own.
         bool applyContentOffset = true;
 
-        // Isolated tree frames have the offset encoded into them so we don't need to undo here.
-#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
-        applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();
-#endif
         if (auto pluginView = WebKit::WebPage::pluginViewForFrame(protectedSelf->m_page->mainFrame()))
             applyContentOffset = !pluginView->plugin()->pluginHandlesContentOffsetForAccessibilityHitTest();
         
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to