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

Reply via email to