Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a23f8510a40e5ac8e74916ad3f291ad4b8b3ef54
      
https://github.com/WebKit/WebKit/commit/a23f8510a40e5ac8e74916ad3f291ad4b8b3ef54
  Author: Tyler Wilcock <tyle...@apple.com>
  Date:   2025-04-04 (Fri, 04 Apr 2025)

  Changed paths:
    M LayoutTests/accessibility-isolated-tree/TestExpectations
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h

  Log Message:
  -----------
  AX: WebKit fails to expose content at maximal DOM depth after 
ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE)
https://bugs.webkit.org/show_bug.cgi?id=290936
rdar://148450300

Reviewed by Joshua Hoffman.

Due to the depth check in AXIsolatedTree::collectNodeChangesForSubtree, we fail 
to add content in very deep DOMs. We
used to get away with this before ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE) 
because we only called this function with
unignored objects, but that changed with 
ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE), meaning we traverse through many
more layers and are thus more likely to hit this. This logic assumed anything 
in the callstack was a DOM object, but
if we start building the tree from a non-DOM object (like the scroll area and 
then web area), we will fail to get
content at the deepest levels of the tree (as exposed by 
button-in-deep-dom.html).

This commit removes the depth check entirely. It was added as a speculative 
workaround for a stack overflow. But we
really shouldn't need to do this depth check, as presumably the live / 
main-thread tree was built just as deep. If
this crash reoccurs, we should try to fix the root cause, e.g. some infinite 
recursion caused by a cyclical tree
hierarchy.

* LayoutTests/accessibility-isolated-tree/TestExpectations:
Remove expected failure button-in-deep-dom.html.
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::isCollectingNodeChanges const):

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



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

Reply via email to