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

Reply via email to