Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6009380248ac33dc2cc9876ae881ed828993bff9
https://github.com/WebKit/WebKit/commit/6009380248ac33dc2cc9876ae881ed828993bff9
Author: Tyler Wilcock <[email protected]>
Date: 2026-09-04 (Fri, 04 Sep 2026)
Changed paths:
A
LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-object-fit.html
A
LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-transform.html
A
LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds.html
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXUtilities.cpp
M Source/WebCore/accessibility/AXUtilities.h
Log Message:
-----------
AX: In isolated tree mode, drawFocusIfNeeded() bounds for a canvas fallback
element can be delayed indefinitely
https://bugs.webkit.org/show_bug.cgi?id=323345
rdar://186587133
Reviewed by Chris Fleizach and Dominic Mazzoni.
drawFocusIfNeeded() routes the focus ring's bounds to the accessibility tree
through AXObjectCache::deferCanvasFocusPathBoundsUpdate, which queues them for
performDeferredCacheUpdate. That function returns early when
needsLayoutOrStyleRecalc() is true, and the only thing that brings it back is a
layout.
The problem is that needsLayoutOrStyleRecalc() is also true for a pending style
recalc,
and a style recalc can resolve without a layout following it, stranding the
deferred changes
indefinitely (until something else triggers an update).
Fix this by restarting m_performCacheUpdateTimer when we deferred due to a
pending style recalc.
Three new canvas tests pass in isolated tree mode.
*
LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-object-fit.html:
Added.
*
LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds-with-transform.html:
Added.
* LayoutTests/accessibility/isolated-tree/canvas-drawFocusIfNeeded-bounds.html:
Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::performDeferredCacheUpdate):
* Source/WebCore/accessibility/AXUtilities.cpp:
(WebCore::needsLayoutOrStyleRecalc):
* Source/WebCore/accessibility/AXUtilities.h:
Canonical link: https://commits.webkit.org/320543@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications