Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1c8dc7444b9c08b3346d1b9011ec61fb4f436f40
https://github.com/WebKit/WebKit/commit/1c8dc7444b9c08b3346d1b9011ec61fb4f436f40
Author: Tyler Wilcock <[email protected]>
Date: 2025-06-05 (Thu, 05 Jun 2025)
Changed paths:
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h
M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm
M Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm
Log Message:
-----------
AX: Build the placeholder empty-content isolated tree before starting the AX
thread to guarantee it's in place for the first accessibility request
https://bugs.webkit.org/show_bug.cgi?id=294054
rdar://152617287
Reviewed by Joshua Hoffman.
Prior to this commit, we would start the accessibility thread during the
initial main-thread initialization that happens
in the first -[WKAccessibilityWebPageObjectMac accessibilityAttributeValue:]
request, but the trigger to create the
placeholder tree wouldn't happen until later, meaning any subsequent
accessibilityRootObjectWrapper or accessibilityFocusedUIElement
would be guaranteed to hit the main-thread. This manifested 100% of the time on
http://html.spec.whatwg.org, a large
page that takes a long time to load, and resulted in a complete
Safari-not-responding until the page fully loaded, which
entirely defeats the purpose of having the empty-content placeholder tree.
With this commit, we create the empty placeholder tree first, then initialize
the secondary thread, guaranteeing we have
a tree ready to go for the first off-main-thread request.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::buildIsolatedTreeIfNeeded):
(WebCore::AXObjectCache::buildAccessibilityTreeIfNeeded): Deleted.
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
* Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper:]):
(-[WKAccessibilityWebPageObjectBase setWindow:]):
(-[WKAccessibilityWebPageObjectBase _buildIsolatedTreeIfNeeded]):
* Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
Canonical link: https://commits.webkit.org/295863@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes