[Webkit-unassigned] [Bug 238854] [Multicol] Incorrect clipping when a layer is present between the column and the content layer

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Sep 19 07:38:04 PDT 2022


https://bugs.webkit.org/show_bug.cgi?id=238854

Rob Buis <rbuis at igalia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rbuis at igalia.com

--- Comment #2 from Rob Buis <rbuis at igalia.com> ---
There seems to be a difference between the clipping div being relative (positioned or static). This is the render tree for test case:

(B)lock/(I)nline/I(N)line-block, (A)bsolute/Fi(X)ed/(R)elative/Stic(K)y, (F)loating, (O)verflow clip, Anon(Y)mous, (G)enerated, has(L)ayer, hasLayer(S)crollableArea, (C)omposited, (+)Dirty style, (+)Dirty layout
B---YGLSC --  RenderView at (0,0) size 1728x944 renderer->(0x1430008b0)
B-----LS- --    HTML RenderBlock at (0,0) size 1728x944 renderer->(0x143001860) node->(0x1430011c0)
B-------- --      BODY RenderBody at (8,8) size 1712x928 renderer->(0x143001ad0) node->(0x14303f730)
B-----L-- --        DIV RenderBlock at (0,0) size 206x56 renderer->(0x14301be60) node->(0x14304cc90)
B---YGL-- --          RenderMultiColumnFlowThread at (3,3) size 92x100 renderer->(0x143073150) (layout overflow 0,0 400x100) [fragment containers 0x143073360]
BR----L-- --            DIV RenderBlock at (0,0) size 92x100 renderer->(0x14301c1e0) node->(0x143072fa0) (layout overflow 0,0 400x100) (visual overflow 0,0 400x100) [spans fragment containers in flow 0x143073150 from 0x143073360 to 0x143073360]
B-------- --              DIV RenderBlock at (0,0) size 400x100 renderer->(0x14301c410) node->(0x143073030) [spans fragment containers in flow 0x143073150 from 0x143073360 to 0x143073360]
-------- --                Line: (top: 0 bottom: 18) with leading (top: 0 bottom: 18)
-------- --                RootInlineBox at (0,0) size 167x18 (0x143065040) renderer->(0x14301c410)
-------- --                  InlineTextBox at (0,0) size 167x18 (0x143073580) renderer->(0x14301c550) run(0, 28) "PASS if this text is visible"
I-------- --                #text RenderText renderer->(0x14301c550) node->(0x10341a1b0) length->(28) "PASS if this text is visible"
B---YG--- --*         RenderMultiColumnSet at (3,3) size 200x50 renderer->(0x143073360) (column count 2, size 92x50, gap 16)

This is the render tree for test case with position: relative removed:

(B)lock/(I)nline/I(N)line-block, (A)bsolute/Fi(X)ed/(R)elative/Stic(K)y, (F)loating, (O)verflow clip, Anon(Y)mous, (G)enerated, has(L)ayer, hasLayer(S)crollableArea, (C)omposited, (+)Dirty style, (+)Dirty layout
B---YGLSC -+  RenderView at (0,0) size 1728x0 renderer->(0x1430008b0) layout->[normal child]
B-----LS- -+    HTML RenderBlock at (0,0) size 1728x0 renderer->(0x143001860) node->(0x1430011c0) layout->[self][normal child]
B-------- -+      BODY RenderBody at (8,8) size 1712x0 renderer->(0x143001ad0) node->(0x14303f730) layout->[self][normal child]
B-----L-- -+        DIV RenderBlock at (0,0) size 206x3 renderer->(0x14301be60) node->(0x14304cc90) layout->[self][normal child]
B---YGL-- --          RenderMultiColumnFlowThread at (3,3) size 92x100 renderer->(0x143073150) (layout overflow 0,0 400x100) (visual overflow 0,0 400x100) [fragment containers 0x143073360]
B-------- --            DIV RenderBlock at (0,0) size 92x100 renderer->(0x14301c1e0) node->(0x143072fa0) (layout overflow 0,0 400x100) (visual overflow 0,0 400x100) [spans fragment containers in flow 0x143073150 from 0x143073360 to 0x143073360]
B-------- --              DIV RenderBlock at (0,0) size 400x100 renderer->(0x14301c410) node->(0x143073030) [spans fragment containers in flow 0x143073150 from 0x143073360 to 0x143073360]
-------- --                Line: (top: 0 bottom: 18) with leading (top: 0 bottom: 18)
-------- --                RootInlineBox at (0,0) size 167x18 (0x143065040) renderer->(0x14301c410)
-------- --                  InlineTextBox at (0,0) size 167x18 (0x143073580) renderer->(0x14301c550) run(0, 28) "PASS if this text is visible"
I-------- --                #text RenderText renderer->(0x14301c550) node->(0x10341a1b0) length->(28) "PASS if this text is visible"
B---YG--- --*         RenderMultiColumnSet at (3,3) size 200x50 renderer->(0x143073360) (column count 2, size 92x50, gap 16)

RenderFragmentContainer::overflowRectForFragmentedFlowPortion asks visualOverflowRectForBox on the RenderMultiColumnFlowThread. Since the RenderMultiColumnFlowThread in the first case has no visual overflow, there is clipping against columns, and in the second case there is clipping of 400x100, hence the green rect is unclipped as expected.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20220919/40a78e4f/attachment-0001.htm>


More information about the webkit-unassigned mailing list