Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5bc669a03a79ddd5cf785f2b4308d43a2f76e94b
https://github.com/WebKit/WebKit/commit/5bc669a03a79ddd5cf785f2b4308d43a2f76e94b
Author: Joshua Hoffman <[email protected]>
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@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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes