[webkit-changes] [WebKit/WebKit] 5bc669: AX: Defer isolated tree node removals so they are ...
Joshua Hoffman
noreply at github.com
Fri Feb 21 11:06:35 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5bc669a03a79ddd5cf785f2b4308d43a2f76e94b
https://github.com/WebKit/WebKit/commit/5bc669a03a79ddd5cf785f2b4308d43a2f76e94b
Author: Joshua Hoffman <jhoffman23 at apple.com>
Date: 2025-02-21 (Fri, 21 Feb 2025)
Changed paths:
M LayoutTests/accessibility/accessibility-object-detached-expected.txt
M LayoutTests/accessibility/accessibility-object-detached.html
M LayoutTests/accessibility/canvas-fallback-content-expected.txt
M LayoutTests/accessibility/canvas-fallback-content.html
M LayoutTests/accessibility/datetime/input-date-field-labels-and-value-changes-expected.txt
M LayoutTests/accessibility/datetime/input-date-field-labels-and-value-changes.html
M LayoutTests/accessibility/mac/element-is-ignored-expected.txt
M LayoutTests/accessibility/mac/element-is-ignored.html
M LayoutTests/accessibility/mac/focus-moves-cursor-expected.txt
M LayoutTests/accessibility/mac/focus-moves-cursor.html
M LayoutTests/accessibility/mac/slider-thumb-value-crash-expected.txt
M LayoutTests/accessibility/mac/slider-thumb-value-crash.html
M LayoutTests/accessibility/mac/stale-textmarker-crash.html
M LayoutTests/accessibility/mac/textmarker-routines-expected.txt
M LayoutTests/accessibility/mac/textmarker-routines.html
M LayoutTests/accessibility/title-ui-element-correctness.html
M LayoutTests/platform/mac/accessibility/canvas-fallback-content-expected.txt
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
M Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm
Log Message:
-----------
AX: Defer isolated tree node removals so they are batched with other queued node updates
https://bugs.webkit.org/show_bug.cgi?id=288001
rdar://145164516
Reviewed by Tyler Wilcock.
In 271907 at main, we added a new mechanism to de-duplicate node changes by batching them and
processing them in batches off of a timer. This included most types of changes, but did not
include node removals. This means that nodes could possibly be removed before other types
of updates happen, causing the tree to be temporarily out of sync.
To fix this, let's start to queue node changes as well in `queueNodeRemoval`. This changes
handles that and updates `removeNode` to work off of AXIDs instead of object references
which it has before.
Many layout tests were updated to be asynchronous, or to be made more asynchronous, due to
behavior this change exposed.
* LayoutTests/accessibility/accessibility-object-detached-expected.txt:
* LayoutTests/accessibility/accessibility-object-detached.html:
* LayoutTests/accessibility/canvas-fallback-content-expected.txt:
* LayoutTests/accessibility/canvas-fallback-content.html:
* LayoutTests/accessibility/datetime/input-date-field-labels-and-value-changes.html:
* LayoutTests/accessibility/mac/element-is-ignored-expected.txt:
* LayoutTests/accessibility/mac/element-is-ignored.html:
* LayoutTests/accessibility/mac/focus-moves-cursor-expected.txt:
* LayoutTests/accessibility/mac/focus-moves-cursor.html:
* LayoutTests/accessibility/mac/slider-thumb-value-crash-expected.txt:
* LayoutTests/accessibility/mac/slider-thumb-value-crash.html:
* LayoutTests/accessibility/mac/stale-textmarker-crash.html:
* LayoutTests/accessibility/mac/textmarker-routines-expected.txt:
* LayoutTests/accessibility/mac/textmarker-routines.html:
* LayoutTests/accessibility/title-ui-element-correctness.html:
* LayoutTests/platform/mac/accessibility/canvas-fallback-content-expected.txt:
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::AXIsolatedTree::queueNodeRemoval):
(WebCore::AXIsolatedTree::processQueuedNodeUpdates):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
Canonical link: https://commits.webkit.org/290812@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list