Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 30a1975ef0617171b518755e7bcc188c744fde6c
https://github.com/WebKit/WebKit/commit/30a1975ef0617171b518755e7bcc188c744fde6c
Author: Tyler Wilcock <[email protected]>
Date: 2026-09-08 (Tue, 08 Sep 2026)
Changed paths:
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/accessibility/AccessibilityObject.h
Log Message:
-----------
AX: Each inserted child re-walks the same ancestor chain to compute
is-ignored-from-parent data
https://bugs.webkit.org/show_bug.cgi?id=323523
rdar://186765474
Reviewed by Dominic Mazzoni.
setIsIgnoredFromParentDataForChild() has two paths. When the parent's own
m_isIgnoredFromParentData is set it derives the child's from it in constant
time.
When it isn't, the child walks its entire ancestor chain instead.
This commit implements an optimization where we compute the parent's data once
right before adding children, rather than having each child unnecessarily do a
full ancestor walk.
A profile of Speedometer 3.1 with VoiceOver enabled attributes 203 samples to
setIsIgnoredFromParentDataForChild() across 140 call sites.
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateChildrenIfNecessary):
(WebCore::AccessibilityObject::computeIsIgnoredFromParentData):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
* Source/WebCore/accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::setIsIgnoredFromParentData):
Canonical link: https://commits.webkit.org/320661@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications