1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 04:37:44 +00:00

LibWeb: Use separate structure to represent fragments in paintable tree

This is a part of refactoring towards making the paintable tree
independent of the layout tree. Now, instead of transferring text
fragments from the layout tree to the paintable tree during the layout
commit phase, we allocate separate PaintableFragments that contain only
the information necessary for painting. Doing this also allows us to
get rid LineBoxes, as they are used only during layout.
This commit is contained in:
Aliaksandr Kalenik 2024-01-12 21:25:05 +01:00 committed by Andreas Kling
parent 785fa60cca
commit de32b77ceb
401 changed files with 2122 additions and 3614 deletions

View file

@ -5,256 +5,224 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
TextNode <#text>
Box <div.row.outer.start> at (53,53) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (68,68) content-size 150x50 positioned [BFC] children: inline
line 0 width: 41.234375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 5, rect: [68,68 41.234375x17]
frag 0 from TextNode start: 0, length: 5, rect: [68,68 41.234375x17] baseline: 13.296875
"start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,128) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.flex-start> at (53,143) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (68,158) content-size 150x50 positioned [BFC] children: inline
line 0 width: 76.8125, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 10, rect: [68,158 76.8125x17]
frag 0 from TextNode start: 0, length: 10, rect: [68,158 76.8125x17] baseline: 13.296875
"flex-start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,218) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.end> at (53,233) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (188,248) content-size 150x50 positioned [BFC] children: inline
line 0 width: 26.1875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 3, rect: [188,248 26.1875x17]
frag 0 from TextNode start: 0, length: 3, rect: [188,248 26.1875x17] baseline: 13.296875
"end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,308) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.flex-end> at (53,323) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (188,338) content-size 150x50 positioned [BFC] children: inline
line 0 width: 61.765625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 8, rect: [188,338 61.765625x17]
frag 0 from TextNode start: 0, length: 8, rect: [188,338 61.765625x17] baseline: 13.296875
"flex-end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,398) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.center> at (53,413) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (128,428) content-size 150x50 positioned [BFC] children: inline
line 0 width: 51.625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 6, rect: [128,428 51.625x17]
frag 0 from TextNode start: 0, length: 6, rect: [128,428 51.625x17] baseline: 13.296875
"center"
TextNode <#text>
BlockContainer <(anonymous)> at (38,488) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.space-around> at (53,503) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (128,518) content-size 150x50 positioned [BFC] children: inline
line 0 width: 107.96875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [128,518 107.96875x17]
frag 0 from TextNode start: 0, length: 12, rect: [128,518 107.96875x17] baseline: 13.296875
"space-around"
TextNode <#text>
BlockContainer <(anonymous)> at (38,578) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.space-between> at (53,593) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (68,608) content-size 150x50 positioned [BFC] children: inline
line 0 width: 115.515625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 13, rect: [68,608 115.515625x17]
frag 0 from TextNode start: 0, length: 13, rect: [68,608 115.515625x17] baseline: 13.296875
"space-between"
TextNode <#text>
BlockContainer <(anonymous)> at (38,668) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.outer.space-evenly> at (53,683) content-size 300x60 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (128,698) content-size 150x50 positioned [BFC] children: inline
line 0 width: 98.859375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [128,698 98.859375x17]
frag 0 from TextNode start: 0, length: 12, rect: [128,698 98.859375x17] baseline: 13.296875
"space-evenly"
TextNode <#text>
BlockContainer <(anonymous)> at (38,758) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.start> at (53,773) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,788) content-size 150x50 positioned [BFC] children: inline
line 0 width: 41.234375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 5, rect: [68,788 41.234375x17]
frag 0 from TextNode start: 0, length: 5, rect: [68,788 41.234375x17] baseline: 13.296875
"start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,848) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.flex-start> at (53,863) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (188,878) content-size 150x50 positioned [BFC] children: inline
line 0 width: 76.8125, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 10, rect: [188,878 76.8125x17]
frag 0 from TextNode start: 0, length: 10, rect: [188,878 76.8125x17] baseline: 13.296875
"flex-start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,938) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.end> at (53,953) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (188,968) content-size 150x50 positioned [BFC] children: inline
line 0 width: 26.1875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 3, rect: [188,968 26.1875x17]
frag 0 from TextNode start: 0, length: 3, rect: [188,968 26.1875x17] baseline: 13.296875
"end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1028) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.flex-end> at (53,1043) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,1058) content-size 150x50 positioned [BFC] children: inline
line 0 width: 61.765625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 8, rect: [68,1058 61.765625x17]
frag 0 from TextNode start: 0, length: 8, rect: [68,1058 61.765625x17] baseline: 13.296875
"flex-end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1118) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.center> at (53,1133) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (128,1148) content-size 150x50 positioned [BFC] children: inline
line 0 width: 51.625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 6, rect: [128,1148 51.625x17]
frag 0 from TextNode start: 0, length: 6, rect: [128,1148 51.625x17] baseline: 13.296875
"center"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1208) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.space-around> at (53,1223) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (128,1238) content-size 150x50 positioned [BFC] children: inline
line 0 width: 107.96875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [128,1238 107.96875x17]
frag 0 from TextNode start: 0, length: 12, rect: [128,1238 107.96875x17] baseline: 13.296875
"space-around"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1298) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.space-between> at (53,1313) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (188,1328) content-size 150x50 positioned [BFC] children: inline
line 0 width: 115.515625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 13, rect: [188,1328 115.515625x17]
frag 0 from TextNode start: 0, length: 13, rect: [188,1328 115.515625x17] baseline: 13.296875
"space-between"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1388) content-size 724x0 children: inline
TextNode <#text>
Box <div.row.reverse.outer.space-evenly> at (53,1403) content-size 300x60 flex-container(row-reverse) [FFC] children: not-inline
BlockContainer <div> at (128,1418) content-size 150x50 positioned [BFC] children: inline
line 0 width: 98.859375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [128,1418 98.859375x17]
frag 0 from TextNode start: 0, length: 12, rect: [128,1418 98.859375x17] baseline: 13.296875
"space-evenly"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1478) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.start> at (53,1493) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1508) content-size 150x50 positioned [BFC] children: inline
line 0 width: 41.234375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 5, rect: [68,1508 41.234375x17]
frag 0 from TextNode start: 0, length: 5, rect: [68,1508 41.234375x17] baseline: 13.296875
"start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1568) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.flex-start> at (53,1583) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1598) content-size 150x50 positioned [BFC] children: inline
line 0 width: 76.8125, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 10, rect: [68,1598 76.8125x17]
frag 0 from TextNode start: 0, length: 10, rect: [68,1598 76.8125x17] baseline: 13.296875
"flex-start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1658) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.end> at (53,1673) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1668) content-size 150x50 positioned [BFC] children: inline
line 0 width: 26.1875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 3, rect: [68,1668 26.1875x17]
frag 0 from TextNode start: 0, length: 3, rect: [68,1668 26.1875x17] baseline: 13.296875
"end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1748) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.flex-end> at (53,1763) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1758) content-size 150x50 positioned [BFC] children: inline
line 0 width: 61.765625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 8, rect: [68,1758 61.765625x17]
frag 0 from TextNode start: 0, length: 8, rect: [68,1758 61.765625x17] baseline: 13.296875
"flex-end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1838) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.center> at (53,1853) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1858) content-size 150x50 positioned [BFC] children: inline
line 0 width: 51.625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 6, rect: [68,1858 51.625x17]
frag 0 from TextNode start: 0, length: 6, rect: [68,1858 51.625x17] baseline: 13.296875
"center"
TextNode <#text>
BlockContainer <(anonymous)> at (38,1928) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.space-around> at (53,1943) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,1948) content-size 150x50 positioned [BFC] children: inline
line 0 width: 107.96875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [68,1948 107.96875x17]
frag 0 from TextNode start: 0, length: 12, rect: [68,1948 107.96875x17] baseline: 13.296875
"space-around"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2018) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.space-between> at (53,2033) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,2048) content-size 150x50 positioned [BFC] children: inline
line 0 width: 115.515625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 13, rect: [68,2048 115.515625x17]
frag 0 from TextNode start: 0, length: 13, rect: [68,2048 115.515625x17] baseline: 13.296875
"space-between"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2108) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.outer.space-evenly> at (53,2123) content-size 300x60 flex-container(column) [FFC] children: not-inline
BlockContainer <div> at (68,2128) content-size 150x50 positioned [BFC] children: inline
line 0 width: 98.859375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [68,2128 98.859375x17]
frag 0 from TextNode start: 0, length: 12, rect: [68,2128 98.859375x17] baseline: 13.296875
"space-evenly"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2198) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.start> at (53,2213) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2228) content-size 150x50 positioned [BFC] children: inline
line 0 width: 41.234375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 5, rect: [68,2228 41.234375x17]
frag 0 from TextNode start: 0, length: 5, rect: [68,2228 41.234375x17] baseline: 13.296875
"start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2288) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.flex-start> at (53,2303) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2298) content-size 150x50 positioned [BFC] children: inline
line 0 width: 76.8125, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 10, rect: [68,2298 76.8125x17]
frag 0 from TextNode start: 0, length: 10, rect: [68,2298 76.8125x17] baseline: 13.296875
"flex-start"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2378) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.end> at (53,2393) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2388) content-size 150x50 positioned [BFC] children: inline
line 0 width: 26.1875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 3, rect: [68,2388 26.1875x17]
frag 0 from TextNode start: 0, length: 3, rect: [68,2388 26.1875x17] baseline: 13.296875
"end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2468) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.flex-end> at (53,2483) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2498) content-size 150x50 positioned [BFC] children: inline
line 0 width: 61.765625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 8, rect: [68,2498 61.765625x17]
frag 0 from TextNode start: 0, length: 8, rect: [68,2498 61.765625x17] baseline: 13.296875
"flex-end"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2558) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.center> at (53,2573) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2578) content-size 150x50 positioned [BFC] children: inline
line 0 width: 51.625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 6, rect: [68,2578 51.625x17]
frag 0 from TextNode start: 0, length: 6, rect: [68,2578 51.625x17] baseline: 13.296875
"center"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2648) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.space-around> at (53,2663) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2668) content-size 150x50 positioned [BFC] children: inline
line 0 width: 107.96875, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [68,2668 107.96875x17]
frag 0 from TextNode start: 0, length: 12, rect: [68,2668 107.96875x17] baseline: 13.296875
"space-around"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2738) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.space-between> at (53,2753) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2748) content-size 150x50 positioned [BFC] children: inline
line 0 width: 115.515625, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 13, rect: [68,2748 115.515625x17]
frag 0 from TextNode start: 0, length: 13, rect: [68,2748 115.515625x17] baseline: 13.296875
"space-between"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2828) content-size 724x0 children: inline
TextNode <#text>
Box <div.column.reverse.outer.space-evenly> at (53,2843) content-size 300x60 flex-container(column-reverse) [FFC] children: not-inline
BlockContainer <div> at (68,2848) content-size 150x50 positioned [BFC] children: inline
line 0 width: 98.859375, height: 17, bottom: 17, baseline: 13.296875
frag 0 from TextNode start: 0, length: 12, rect: [68,2848 98.859375x17]
frag 0 from TextNode start: 0, length: 12, rect: [68,2848 98.859375x17] baseline: 13.296875
"space-evenly"
TextNode <#text>
BlockContainer <(anonymous)> at (38,2918) content-size 724x0 children: inline