Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 260dbd54ddc991eb4da22ade56c40a850e31fe81 https://github.com/WebKit/WebKit/commit/260dbd54ddc991eb4da22ade56c40a850e31fe81 Author: Joshua Hoffman <jhoffma...@apple.com> Date: 2023-12-14 (Thu, 14 Dec 2023)
Changed paths: M LayoutTests/accessibility/mac/table-headers-attribute.html M Source/WebCore/accessibility/AXObjectCache.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h Log Message: ----------- AX: Serve relatedObjectIdsFor off of the main thread https://bugs.webkit.org/show_bug.cgi?id=266268 rdar://116133758 Reviewed by Tyler Wilcock. Before this patch, we would have to go to the main thread to retrieve relations from the cache whenever they were dirty inside AXIsolatedTree::relatedObjectIdsFor. This patch removes that necessity by caching relations, which is performed only when they are dirty. Taking advantage of the new deferred node updates logic, we now cache relations from the AXObjectCache only if the m_relationsNeedUpdate flag is set when processQueuedNodeUpdates is fired, rather than caching lazily in relatedObjectIdsFor. This allows AXIsolatedTree::relatedObjectIdsFor to use the cached m_relations. One test was made async to reflect this change. * LayoutTests/accessibility/mac/table-headers-attribute.html: * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::relationsNeedUpdate): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::create): (WebCore::AXIsolatedTree::updateRelations): (WebCore::AXIsolatedTree::relatedObjectIDsFor): (WebCore::AXIsolatedTree::processQueuedNodeUpdates): * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h: Canonical link: https://commits.webkit.org/272054@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes