[webkit-changes] [WebKit/WebKit] 290519: AX: Build the isolated tree asynchronously.

AndresGonzalezApple noreply at github.com
Sat May 6 01:45:49 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 290519ffb9d76364618bbbc0d7c5842b39b82e44
      https://github.com/WebKit/WebKit/commit/290519ffb9d76364618bbbc0d7c5842b39b82e44
  Author: Andres Gonzalez <andresg_22 at apple.com>
  Date:   2023-05-06 (Sat, 06 May 2023)

  Changed paths:
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AXTreeStore.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm

  Log Message:
  -----------
  AX: Build the isolated tree asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=256288
<rdar://problem/108871141>

Reviewed by Tyler Wilcock.

The isolated tree is built on first request synchronously blocking the response to the AT client. In this change, we return an "empty" isolated tree consisting only of the ScrollView and WebArea objects to the client that serves as a placeholder while the whole isolated tree is built. When the complete tree is built, it replaces the "empty" placeholder and the clients is notified. This will help in not blocking response to the client for large intervals of time.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::AXObjectCache::getOrCreateIsolatedTree):
(WebCore::AXObjectCache::buildIsolatedTree):
(WebCore::AXObjectCache::getOrCreateIsolatedTree const): Deleted.
* Source/WebCore/accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::pageID const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmpty):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::collectNodeChangesForChildren):
(WebCore::AXIsolatedTree::storeTree):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::isTestClient):

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreateIsolatedTree):
(WebCore::AXObjectCache::buildIsolatedTree):
(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXTreeStore<T>::set):

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createEmpty):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::collectNodeChangesForChildren):

Canonical link: https://commits.webkit.org/263752@main




More information about the webkit-changes mailing list