Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f8ef167b97d50bce3f8d37fcc098266d79094152
https://github.com/WebKit/WebKit/commit/f8ef167b97d50bce3f8d37fcc098266d79094152
Author: Tyler Wilcock <[email protected]>
Date: 2023-08-23 (Wed, 23 Aug 2023)
Changed paths:
M Source/WebCore/accessibility/AXObjectCache.cpp
Log Message:
-----------
AX: Relations updates thrash between dirty and clean when multiple deferred
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes