Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
AX: Relations updates thrash between dirty and clean when multiple de…
…ferred id attribute changes are processed https://bugs.webkit.org/show_bug.cgi?id=260370 rdar://problem/114052085 Reviewed by Andres Gonzalez. In AXObjectCache::handleAttributeChange, any change to the `id` attribute causes AXObjectCache::m_relationsNeedUpdate to become true. This is problematic when `m_deferredAttributeChange` contains multiple `id` attribute changes, as we thrash between setting m_relationsNeedUpdate to true, immediately resetting it to false as a result of an arbitrary` parentObject` call, and then re-dirtying it with the next id attribute change. With this patch (authored by Andres Gonzalez), we only update relations once, even when a group of id attribute changes are processed. * Source/WebCore/accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::performDeferredCacheUpdate): (WebCore::AXObjectCache::relationsNeedUpdate): * Source/WebCore/accessibility/AXObjectCache.h: Canonical link: https://commits.webkit.org/267190@main
- Loading branch information