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