[webkit-changes] [WebKit/WebKit] 1ffe12: Do not check for clean subtree when the entire tre...
Alan Baradlay
noreply at github.com
Mon Jan 15 07:09:18 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1ffe12c923b950248155f422002151988234600d
https://github.com/WebKit/WebKit/commit/1ffe12c923b950248155f422002151988234600d
Author: Alan Baradlay <zalan at apple.com>
Date: 2024-01-15 (Mon, 15 Jan 2024)
Changed paths:
M LayoutTests/fast/repaint/content-inside-subpixel-positioned-iframe.html
M LayoutTests/fast/repaint/hidpi-content-inside-iframe-leaves-trails.html
M Source/WebCore/dom/Document.cpp
Log Message:
-----------
Do not check for clean subtree when the entire tree is clean
https://bugs.webkit.org/show_bug.cgi?id=267502
Reviewed by Antti Koivisto.
* LayoutTests/fast/repaint/content-inside-subpixel-positioned-iframe.html:
* LayoutTests/fast/repaint/hidpi-content-inside-iframe-leaves-trails.html:
Geometry query on the _in-flow_ body with _out-of-flow_ descendant does not trigger layout.
These 2 tests have the following structure;
out-of-flow box _inside_ an iframe and JS changes the position of these out-of-flow boxes.
updateLayoutIfDimensionsOutOfDate incorrectly forces layout on the iframe's content through recursing into the parent document (where the iframe lives).
When we find the (otherwise clean) iframe in the parent document we bail out of this optimized codepath (as we can only handle block boxes) and
return to the child document saying it needs layout. This is a bug in this optimized codepath as a non-optimized version of it would not
force layout on the iframe's render view when querying for geometry on an _in-flow_ box with _out-of-flow_ descendant.
These repaint tests pass fine as layout happens through the normal, non-sync operation, but they expect sync results (hence the change).
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::updateLayoutIfDimensionsOutOfDate):
Canonical link: https://commits.webkit.org/273040@main
More information about the webkit-changes
mailing list