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