[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