1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:27:35 +00:00

LibWeb: Add ViewportPaintable to represent viewports in the paint tree

This patch just adds the new root paintable and updates the tests
expectations. The next patch will move painting logic from the layout
viewport to the paint viewport.
This commit is contained in:
Andreas Kling 2023-08-18 15:52:40 +02:00
parent 136ac1a6a5
commit c01c4b41e2
389 changed files with 441 additions and 384 deletions

View file

@ -76,7 +76,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x566]
PaintableBox (Box<BODY>) [18,18 764x530]
PaintableBox (Box<DIV>.outer.normal) [28,28 170x170] overflow: [38,38 170x150]

View file

@ -260,7 +260,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> at (38,2918) content-size 724x0 children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x2956]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x2956]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x2956]
PaintableWithLines (BlockContainer<BODY>) [23,23 754x2910]
PaintableWithLines (BlockContainer(anonymous)) [38,38 724x0]

View file

@ -30,7 +30,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> at (10,276.40625) content-size 780x0 children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x286.40625]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x268.40625]
PaintableBox (Box<DIV>.flex.row.align-start) [10,10 502x202]

View file

@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
Box <body> at (8,8) content-size 784x0 flex-container(row) [FFC] children: not-inline
BlockContainer <div> at (8,8) content-size 0x0 flex-item [BFC] children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
PaintableBox (Box<BODY>) [8,8 784x0]
PaintableWithLines (BlockContainer<DIV>) [8,8 0x0]

View file

@ -7,7 +7,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"hello"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x70]
PaintableBox (Box<BODY>.flex) [9,9 40.84375x52]
PaintableWithLines (BlockContainer<DIV>.item) [10,10 38.84375x50]

View file

@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> at (22,22) content-size 0x0 [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x44]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x26]
PaintableWithLines (BlockContainer<DIV>.first) [10,10 780x24]

View file

@ -23,7 +23,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"Item 4"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x82]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x64]
PaintableBox (Box<DIV>.flex-container) [10,10 780x62]

View file

@ -26,7 +26,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"Pellentesque eget justo nulla. Duis consectetur imperdiet nisi, ac tincidunt urna blandit quis."
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x247.09375]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x229.09375]
PaintableBox (Box<DIV>.outer.flex.flex-wrap) [10,10 780x227.09375]

View file

@ -2,6 +2,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (0,0) content-size 800x16 [BFC] children: not-inline
Box <body> at (8,8) content-size 0x0 flex-container(column) [FFC] children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
PaintableBox (Box<BODY>) [8,8 0x0]

View file

@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
Box <body> at (10,10) content-size 780x102 flex-container(column) [FFC] children: not-inline
ImageBox <img> at (11,11) content-size 100x100 flex-item children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x122]
PaintableBox (Box<BODY>) [9,9 782x104]
ImagePaintable (ImageBox<IMG>) [10,10 102x102]

View file

@ -4,7 +4,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
SVGSVGBox <svg> at (0,0) content-size 200x100 flex-item [SVG] children: not-inline
SVGGeometryBox <rect> at (0,0) content-size 200x100 children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x100]
PaintableBox (Box<BODY>) [0,0 800x100]
SVGSVGPaintable (SVGSVGBox<svg>) [0,0 200x100]

View file

@ -10,7 +10,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x122]
PaintableWithLines (BlockContainer<BODY>) [9,9 56x104]
PaintableBox (Box<DIV>.flex) [10,10 54x102]

View file

@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"this text should be all on one line"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x53.46875]
PaintableWithLines (BlockContainer<BODY>.outer) [8,8 300.84375x37.46875]
PaintableBox (Box<DIV>.inner) [18,18 280.84375x17.46875]

View file

@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [-92,0 892x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [-92,0 892x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x116] overflow: [-92,0 892x116]
PaintableWithLines (BlockContainer<BODY>) [8,8 784x100] overflow: [-92,8 884x100]
PaintableWithLines (BlockContainer<DIV>#container-of-flex) [8,8 100x100] overflow: [-92,8 200x100]

View file

@ -11,7 +11,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <div> at (12,228) content-size 30x30 flex-item [BFC] children: not-inline
BlockContainer <div> at (64,228) content-size 30x30 flex-item [BFC] children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x602]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x602]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x602]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x252]
PaintableBox (Box<DIV>.flexbox) [10,10 102x250]

View file

@ -21,7 +21,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"Reject"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x72]
PaintableBox (Box<BODY>) [9,9 502x54]
PaintableWithLines (BlockContainer<DIV>.big) [10,10 383.625x52]

View file

@ -14,7 +14,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"text"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x69.34375]
PaintableBox (Box<BODY>.pink) [8,8 784x53.34375]
PaintableBox (Box<DIV>.orange) [8,8 194.71875x53.34375]

View file

@ -5,7 +5,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x72]
PaintableBox (Box<BODY>) [9,9 782x54]
ImagePaintable (ImageBox<IMG>) [10,10 68.671875x52]

View file

@ -18,7 +18,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"3"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x66]
PaintableWithLines (BlockContainer<BODY>) [8,8 784x50]
PaintableBox (Box<DIV>.flex) [8,8 784x50]

View file

@ -28,7 +28,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"friends"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x128]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x110]
PaintableBox (Box<DIV>.flex) [10,10 502x54]

View file

@ -7,7 +7,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"hmmMMMMmmmmmm"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x33.46875]
PaintableBox (Box<BODY>) [8,8 784x17.46875]
PaintableWithLines (BlockContainer<MAIN>) [8,8 784x17.46875]

View file

@ -9,7 +9,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"Immobilie inserieren"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 502x39.46875]
PaintableBox (Box<BODY>) [9,9 164.40625x21.46875]
PaintableWithLines (BlockContainer<DIV>) [10,10 162.40625x19.46875]

View file

@ -52,7 +52,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> (not painted) [BFC] children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x145.28125]
PaintableBox (Box<BODY>) [9,9 782x127.28125]
PaintableWithLines (BlockContainer<DIV>.px) [10,10 202x21.46875]

View file

@ -4,7 +4,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
SVGSVGBox <svg> at (400,8) content-size 0x0 flex-item [SVG] children: not-inline
SVGGeometryBox <rect> at (400,8) content-size 0x0 children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
PaintableBox (Box<BODY>) [8,8 784x0]
SVGSVGPaintable (SVGSVGBox<svg>) [400,8 0x0]

View file

@ -580,7 +580,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> at (10,5834) content-size 780x0 children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x5844]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x5844]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x5844]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x5826]
PaintableWithLines (BlockContainer(anonymous)) [10,10 780x0]

View file

@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"A"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
PaintableWithLines (BlockContainer<BODY>) [8,8 784x17.46875]
PaintableBox (Box<DIV>.container) [8,8 784x17.46875]

View file

@ -292,7 +292,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <(anonymous)> at (10,2922) content-size 780x0 children: inline
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x2932]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x2932]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x2932]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x2914]
PaintableWithLines (BlockContainer(anonymous)) [10,10 780x0]

View file

@ -13,7 +13,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"Mac"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x41.46875]
PaintableWithLines (BlockContainer<BODY>) [8,16 784x17.46875]
PaintableBox (Box<UL>.globalnav-list) [8,16 784x17.46875]

View file

@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <div> at (12,64) content-size 50x50 flex-item [BFC] children: not-inline
BlockContainer <div> at (12,116) content-size 50x50 flex-item [BFC] children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x178]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x160]
PaintableBox (Box<DIV>.flexbox) [10,10 202x158]

View file

@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"percentages are hard"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x33.46875]
PaintableBox (Box<BODY>.outer) [8,8 200x17.46875]
PaintableWithLines (BlockContainer<DIV>.middle) [8,8 200x17.46875]

View file

@ -12,7 +12,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"athena"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x45.46875]
PaintableBox (Box<BODY>) [10,10 604x25.46875] overflow: [12,12 600x25.46875]
PaintableWithLines (BlockContainer<DIV>.exekiller) [12,12 204x21.46875]

View file

@ -72,7 +72,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
"friends"
TextNode <#text>
PaintableWithLines (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x616]
ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x616]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x616]
PaintableWithLines (BlockContainer<BODY>) [8,8 784x600]
PaintableBox (Box<DIV>.outer.row) [8,8 150x150]

View file

@ -4,7 +4,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
ImageBox <img> at (0,0) content-size 400x100 flex-item children: not-inline
ImageBox <img.padded> at (600,0) content-size 200x100 flex-item children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x100]
PaintableBox (Box<BODY>) [0,0 800x100]
ImagePaintable (ImageBox<IMG>) [0,0 400x100]

View file

@ -9,7 +9,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <div> at (12,178.65625) content-size 100x20 flex-item [BFC] children: not-inline
BlockContainer <div> at (114,178.65625) content-size 100x20 flex-item [BFC] children: not-inline
PaintableWithLines (Viewport<#document>) [0,0 800x600]
ViewportPaintable (Viewport<#document>) [0,0 800x600]
PaintableWithLines (BlockContainer<HTML>) [0,0 800x222]
PaintableWithLines (BlockContainer<BODY>) [9,9 782x204]
PaintableBox (Box<DIV>.flex) [10,10 302x202]