Bug 238463

Summary: AX ITM: Don't always queue objects for removal if we bail early in AXIsolatedTree::removeSubtreeFromNodeMap
Product: WebKit Reporter: Tyler Wilcock <tyler_w>
Component: AccessibilityAssignee: Tyler Wilcock <tyler_w>
Status: NEW ---    
Severity: Normal CC: aboxhall, andresg_22, apinheiro, cfleizach, dmazzoni, ews-watchlist, jcraig, jdiggs, samuel_white, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch ews-feeder: commit-queue-

Description Tyler Wilcock 2022-03-28 11:57:08 PDT
In both places we call AXIsolatedTree::removeSubtreeFromNodeMap(AXID axID, ...), we unconditionally remove queue axID for removal in AXIsolatedTree::queueChangesAndRemovals.

However, this is sometimes wrong, since AXIsolatedTree::removeSubtreeFromNodeMap can return early without removing axID. We shouldn't be queueing this object for removal in this case.
Comment 1 Radar WebKit Bug Importer 2022-03-28 11:57:21 PDT
<rdar://problem/90937262>
Comment 2 Tyler Wilcock 2022-03-30 14:10:58 PDT
Created attachment 456173 [details]
Patch
Comment 3 Tyler Wilcock 2022-03-30 14:22:22 PDT
Created attachment 456174 [details]
Patch