Bug 284125

Summary: AX: For every clearChildren-addChildren cycle, we create new AccessibilityImageMapLink instances and never clean them up, causing a memory leak
Product: WebKit Reporter: Tyler Wilcock <tyler_w>
Component: AccessibilityAssignee: Tyler Wilcock <tyler_w>
Status: RESOLVED FIXED    
Severity: Normal CC: andresg_22, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 18   
Hardware: All   
OS: All   
Bug Depends on: 282117    
Bug Blocks:    

Tyler Wilcock
Reported 2024-12-05 13:46:16 PST
This happens because AccessibilityImageMapLink subclasses AccessibilityMockObject. This class _should_ subclass AccessibilityNodeObject, which would inherently ensure we only ever create one instance per area element, and clean it up when the area element is destroyed. The reason this was made to be an AccessibilityMockObject is because area elements do not generate renderers, which was troublesome considering we used to build the accessibility tree by walking the render tree. However, after https://bugs.webkit.org/show_bug.cgi?id=281749, we walk the DOM to build the accessibility tree, so this is now easily solvable.
Attachments
Radar WebKit Bug Importer
Comment 1 2024-12-05 16:19:30 PST
Tyler Wilcock
Comment 2 2025-04-01 13:58:34 PDT
EWS
Comment 3 2025-04-04 15:23:30 PDT
Committed 293278@main (eed31338f551): <https://commits.webkit.org/293278@main> Reviewed commits have been landed. Closing PR #43403 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.