[webkit-changes] [WebKit/WebKit] ed2bfb: AX: Update cached text runs when line layout changes
Joshua Hoffman
noreply at github.com
Mon Feb 19 14:33:31 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ed2bfb346eb51503269ee148064da49d3e8d5da9
https://github.com/WebKit/WebKit/commit/ed2bfb346eb51503269ee148064da49d3e8d5da9
Author: Joshua Hoffman <jhoffman23 at apple.com>
Date: 2024-02-19 (Mon, 19 Feb 2024)
Changed paths:
A LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping-expected.txt
A LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping.html
M Source/WebCore/accessibility/AXLogger.cpp
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
M Source/WebCore/rendering/RenderBlockFlow.cpp
Log Message:
-----------
AX: Update cached text runs when line layout changes
https://bugs.webkit.org/show_bug.cgi?id=269628
rdar://problem/123122761
Reviewed by Tyler Wilcock.
When AX_THREAD_TEXT_APIS is enabled, we cache textruns when objects are initialized. But, when their line layout
updates (for example, when the width of their container changes), we do not update the text runs, meaning they
will become stale and the line APIs will return incorrect information to clients.
This patch hooks into line layout, and updates the cached runs for objects that have changed.
One consideration while exploring this patch was whether we need to debounce this caching. But, sampling shows
that this computation is not that expensive, making debouncing excessive.
* LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping-expected.txt: Added.
* LayoutTests/accessibility/ax-thread-text-apis/dynamic-text-line-wrapping.html: Added.
* Source/WebCore/accessibility/AXLogger.cpp:
(WebCore::operator<<):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onTextRunsChanged):
(WebCore::AXObjectCache::updateIsolatedTree):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperties):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
Canonical link: https://commits.webkit.org/274999@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list