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

Reply via email to