[webkit-changes] [WebKit/WebKit] 260dbd: AX: Serve relatedObjectIdsFor off of the main thread

Joshua Hoffman noreply at github.com
Thu Dec 14 10:31:04 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 260dbd54ddc991eb4da22ade56c40a850e31fe81
      https://github.com/WebKit/WebKit/commit/260dbd54ddc991eb4da22ade56c40a850e31fe81
  Author: Joshua Hoffman <jhoffman23 at 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




More information about the webkit-changes mailing list