Files
ladybird/Tests/LibWeb/Layout/expected/flex/flex-optimization-cases.txt
Andreas Kling 7b2a427430 LibWeb: Avoid computing automatic minimum size for some flex items
There's a specific (and thankfully very common!) scenario where we can
actually skip calculating the automatic minimum size for flex items.

In single-line (no wrapping) flex containers, if the sum of all item
flex base sizes is <= the flex container's main size, we know that
none of the items will be shrunk by the layout algorithm.

And so for any flex item with definite main size AND automatic minimum
main size, we can treat the automatic minimum size as 0.
2025-04-22 15:46:10 +02:00

246 lines
15 KiB
Plaintext

Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (0,0) content-size 800x2016 [BFC] children: not-inline
BlockContainer <body> at (8,8) content-size 500x2000 children: not-inline
Box <div> at (8,8) content-size 500x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,8) content-size 78.59375x17 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 10, rect: [8,8 78.59375x17] baseline: 13.296875
"abcdefghij"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,25) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,25) content-size 500x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,25) content-size 0x17 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 10, rect: [8,25 78.59375x17] baseline: 13.296875
"abcdefghij"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,42) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,42) content-size 500x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,42) content-size 100x17 flex-item [BFC] children: inline
frag 0 from BlockContainer start: 0, length: 0, rect: [8,42 100x17] baseline: 13.296875
TextNode <#text>
BlockContainer <span> at (8,42) content-size 100x17 inline-block [BFC] children: inline
frag 0 from TextNode start: 0, length: 1, rect: [8,42 9.703125x17] baseline: 13.296875
"x"
TextNode <#text>
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,59) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,59) content-size 500x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,59) content-size 210.09375x17 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 24, rect: [8,59 210.09375x17] baseline: 13.296875
"longwordlongwordlongword"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,76) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,76) content-size 500x200 flex-container(column) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,76) content-size 500x200 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> at (8,76) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,76) content-size 500x200 children: not-inline
BlockContainer <(anonymous)> at (8,276) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,276) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,276) content-size 500x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,276) content-size 500x17 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 10, rect: [8,276 78.59375x17] baseline: 13.296875
"abcdefghij"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,293) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,293) content-size 500x8 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
ImageBox <img> at (8,293) content-size 8x8 flex-item children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,301) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,301) content-size 100x17 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,301) content-size 210.09375x17 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 24, rect: [8,301 210.09375x17] baseline: 13.296875
"longwordlongwordlongword"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,318) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,318) content-size 500x18.421875 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,318) content-size 36.84375x18.421875 flex-item [BFC] children: inline
frag 0 from TextNode start: 0, length: 5, rect: [8,318 36.84375x17] baseline: 13.296875
"hello"
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,336.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,336.421875) content-size 500x100 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,336.421875) content-size 200x100 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,436.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,436.421875) content-size 500x0 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,436.421875) content-size 0x0 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> at (8,436.421875) content-size 0x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,436.421875) content-size 0x100 children: not-inline
BlockContainer <(anonymous)> at (8,536.421875) content-size 0x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,436.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,436.421875) content-size 500x120 flex-container(column) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,436.421875) content-size 500x120 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> at (8,436.421875) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,436.421875) content-size 500x120 children: not-inline
BlockContainer <(anonymous)> at (8,556.421875) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,556.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,556.421875) content-size 500x300 flex-container(column) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,556.421875) content-size 500x300 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> at (8,556.421875) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,556.421875) content-size 500x300 children: not-inline
BlockContainer <(anonymous)> at (8,856.421875) content-size 500x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,856.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,856.421875) content-size 500x150 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <div> at (8,856.421875) content-size 300x150 flex-item [BFC] children: not-inline
BlockContainer <(anonymous)> at (8,856.421875) content-size 300x0 children: inline
TextNode <#text>
BlockContainer <div> at (8,856.421875) content-size 300x150 children: not-inline
BlockContainer <(anonymous)> at (8,1006.421875) content-size 300x0 children: inline
TextNode <#text>
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,1006.421875) content-size 500x0 children: inline
TextNode <#text>
Box <div> at (8,1006.421875) content-size 500x8 flex-container(row) [FFC] children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
ImageBox <img> at (8,1006.421875) content-size 8x8 flex-item children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
BlockContainer <(anonymous)> at (8,1014.421875) content-size 500x0 children: inline
TextNode <#text>
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x2016]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x2016]
PaintableWithLines (BlockContainer<BODY>) [8,8 500x2000]
PaintableBox (Box<DIV>) [8,8 500x17]
PaintableWithLines (BlockContainer<DIV>) [8,8 78.59375x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,25 500x0]
PaintableBox (Box<DIV>) [8,25 500x17]
PaintableWithLines (BlockContainer<DIV>) [8,25 0x17] overflow: [8,25 78.59375x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,42 500x0]
PaintableBox (Box<DIV>) [8,42 500x17]
PaintableWithLines (BlockContainer<DIV>) [8,42 100x17]
PaintableWithLines (BlockContainer<SPAN>) [8,42 100x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,59 500x0]
PaintableBox (Box<DIV>) [8,59 500x17]
PaintableWithLines (BlockContainer<DIV>) [8,59 210.09375x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,76 500x0]
PaintableBox (Box<DIV>) [8,76 500x200]
PaintableWithLines (BlockContainer<DIV>) [8,76 500x200]
PaintableWithLines (BlockContainer(anonymous)) [8,76 500x0]
PaintableWithLines (BlockContainer<DIV>) [8,76 500x200]
PaintableWithLines (BlockContainer(anonymous)) [8,276 500x0]
PaintableWithLines (BlockContainer(anonymous)) [8,276 500x0]
PaintableBox (Box<DIV>) [8,276 500x17]
PaintableWithLines (BlockContainer<DIV>) [8,276 500x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,293 500x0]
PaintableBox (Box<DIV>) [8,293 500x8]
ImagePaintable (ImageBox<IMG>) [8,293 8x8]
PaintableWithLines (BlockContainer(anonymous)) [8,301 500x0]
PaintableBox (Box<DIV>) [8,301 100x17] overflow: [8,301 210.09375x17]
PaintableWithLines (BlockContainer<DIV>) [8,301 210.09375x17]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,318 500x0]
PaintableBox (Box<DIV>) [8,318 500x18.421875]
PaintableWithLines (BlockContainer<DIV>) [8,318 36.84375x18.421875]
TextPaintable (TextNode<#text>)
PaintableWithLines (BlockContainer(anonymous)) [8,336.421875 500x0]
PaintableBox (Box<DIV>) [8,336.421875 500x100]
PaintableWithLines (BlockContainer<DIV>) [8,336.421875 200x100]
PaintableWithLines (BlockContainer(anonymous)) [8,436.421875 500x0]
PaintableBox (Box<DIV>) [8,436.421875 500x0]
PaintableWithLines (BlockContainer<DIV>) [8,436.421875 0x0]
PaintableWithLines (BlockContainer(anonymous)) [8,436.421875 0x0]
PaintableWithLines (BlockContainer<DIV>) [8,436.421875 0x100]
PaintableWithLines (BlockContainer(anonymous)) [8,536.421875 0x0]
PaintableWithLines (BlockContainer(anonymous)) [8,436.421875 500x0]
PaintableBox (Box<DIV>) [8,436.421875 500x120]
PaintableWithLines (BlockContainer<DIV>) [8,436.421875 500x120]
PaintableWithLines (BlockContainer(anonymous)) [8,436.421875 500x0]
PaintableWithLines (BlockContainer<DIV>) [8,436.421875 500x120]
PaintableWithLines (BlockContainer(anonymous)) [8,556.421875 500x0]
PaintableWithLines (BlockContainer(anonymous)) [8,556.421875 500x0]
PaintableBox (Box<DIV>) [8,556.421875 500x300]
PaintableWithLines (BlockContainer<DIV>) [8,556.421875 500x300]
PaintableWithLines (BlockContainer(anonymous)) [8,556.421875 500x0]
PaintableWithLines (BlockContainer<DIV>) [8,556.421875 500x300]
PaintableWithLines (BlockContainer(anonymous)) [8,856.421875 500x0]
PaintableWithLines (BlockContainer(anonymous)) [8,856.421875 500x0]
PaintableBox (Box<DIV>) [8,856.421875 500x150]
PaintableWithLines (BlockContainer<DIV>) [8,856.421875 300x150]
PaintableWithLines (BlockContainer(anonymous)) [8,856.421875 300x0]
PaintableWithLines (BlockContainer<DIV>) [8,856.421875 300x150]
PaintableWithLines (BlockContainer(anonymous)) [8,1006.421875 300x0]
PaintableWithLines (BlockContainer(anonymous)) [8,1006.421875 500x0]
PaintableBox (Box<DIV>) [8,1006.421875 500x8]
ImagePaintable (ImageBox<IMG>) [8,1006.421875 8x8]
PaintableWithLines (BlockContainer(anonymous)) [8,1014.421875 500x0]