haikuwebkit/LayoutTests/fast/multicol/state-propagation-over-out-...

5 lines
35 B
Plaintext
Raw Permalink Normal View History

Multi-column state propagation should follow containing block rules https://bugs.webkit.org/show_bug.cgi?id=222932 <rdar://problem/74459411> Reviewed by Antti Koivisto. Source/WebCore: When a renderer(A) gains multi-column context 1. a special RenderMultiColumnFlow renderer is constructed 2. it is then inserted under the original renderer(A) and 3. all (A)'s descendants get moved under this newly constructed RenderMultiColumnFlow renderer. At step #3 we update each descendants flow state by calling initializeFragmentedFlowStateOnInsertion(). This patch check if the out-of-flow descendant is really part of the multi-column flow and updates the state accordingly. e.g <div style="column-count: 2"><div><div id=child style="position: absolute"></div></div></div> "child" is _not_ part of the multi-column subtree. child's containing block is an ancestor of the multi-column renderer. <div style="column-count: 2"><div style="position: relative"><div id=child style="position: absolute"></div></div></div> "child" _is_ part of the multi-column subtree. child's containing block is the relatively positioned renderer which is part of the multi-column flow. Test: fast/multicol/state-propagation-over-out-of-flow-boundary.html * rendering/RenderObject.cpp: (WebCore::RenderObject::setFragmentedFlowStateIncludingDescendants): (WebCore::RenderObject::initializeFragmentedFlowStateOnInsertion): (WebCore::RenderObject::resetFragmentedFlowStateOnRemoval): * rendering/RenderObject.h: LayoutTests: * fast/multicol/state-propagation-over-out-of-flow-boundary-expected.txt: Added. * fast/multicol/state-propagation-over-out-of-flow-boundary.html: Added. Canonical link: https://commits.webkit.org/235133@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274217 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-03-10 17:31:46 +00:00
PASS if no crash or assert.
text