Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c69e4c0caaf5368db791652eee3a057ed2751144
https://github.com/WebKit/WebKit/commit/c69e4c0caaf5368db791652eee3a057ed2751144
Author: Tyler Wilcock <[email protected]>
Date: 2024-03-07 (Thu, 07 Mar 2024)
Changed paths:
A
LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt
A LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html
M LayoutTests/platform/glib/TestExpectations
M LayoutTests/platform/ios/TestExpectations
A
LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt
A
LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt
M Source/WebCore/accessibility/AXObjectCache.cpp
M Source/WebCore/accessibility/AXObjectCache.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
Log Message:
-----------
AX: AXObjectCache::performDeferredCacheUpdate can run with dirty sub-frame
layout, causing incorrect tree updates
https://bugs.webkit.org/show_bug.cgi?id=270593
rdar://103616732
Reviewed by Andres Gonzalez.
In https://bugs.webkit.org/show_bug.cgi?id=268239, we made
AXObjectCache::performDeferredCacheUpdate
detect when layout is dirty, and either wait another layout cycle to trigger a
cache update, or
force it if necessary. This is important because processing cache updates with
dirty layout
can cause incorrect behavior, like objects being ignored incorrectly.
This change was effective, but did not handle the case where a sub-frame had
dirty layout, meaning
we can still run into this bug. This patch addresses the issue by forcing all
sub-frames to lay out
if necessary.
* LayoutTests/platform/glib/TestExpectations: Skip new test.
* LayoutTests/platform/ios/TestExpectations: Enable new test.
*
LayoutTests/platform/ios/accessibility/iframe-tree-update-with-dirty-layout-expected.txt:
Added.
*
LayoutTests/platform/mac-wk1/accessibility/iframe-tree-update-with-dirty-layout-expected.txt:
Added.
* LayoutTests/accessibility/iframe-tree-update-with-dirty-layout-expected.txt:
Added.
* LayoutTests/accessibility/iframe-tree-update-with-dirty-layout.html: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::performDeferredCacheUpdate):
* Source/WebCore/accessibility/AXObjectCache.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::forceAXObjectCacheUpdate const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
Canonical link: https://commits.webkit.org/275791@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes