Ver Fonte

LibWeb: Stop zero-area children from causing scrollable overflow

Psychpsyo há 8 meses atrás
pai
commit
1d44df74f7
37 ficheiros alterados com 67 adições e 53 exclusões
  1. 4 0
      Libraries/LibWeb/Layout/LayoutState.cpp
  2. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/bfc-float-left-break-vertically-2.txt
  3. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/margin-collapse-1.txt
  4. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-element-js-offsets.txt
  5. 1 1
      Tests/LibWeb/Layout/expected/css-counters/basic.txt
  6. 1 1
      Tests/LibWeb/Layout/expected/css-namespace-rule-matches.txt
  7. 1 1
      Tests/LibWeb/Layout/expected/css-namespace-rule-no-match.txt
  8. 1 1
      Tests/LibWeb/Layout/expected/css-text-transform-math-auto.txt
  9. 3 3
      Tests/LibWeb/Layout/expected/css-values/comparison-functions.txt
  10. 6 6
      Tests/LibWeb/Layout/expected/css-values/exponential-functions.txt
  11. 3 3
      Tests/LibWeb/Layout/expected/css-values/numeric-constants.txt
  12. 1 1
      Tests/LibWeb/Layout/expected/css-values/rect-non-token-contents-crash.txt
  13. 3 3
      Tests/LibWeb/Layout/expected/css-values/sign-related-functions.txt
  14. 4 4
      Tests/LibWeb/Layout/expected/css-values/stepped-value-functions.txt
  15. 1 1
      Tests/LibWeb/Layout/expected/div_align.txt
  16. 1 1
      Tests/LibWeb/Layout/expected/document-write-incomplete-tag.txt
  17. 2 2
      Tests/LibWeb/Layout/expected/flex/abspos-flex-child-with-auto-height.txt
  18. 1 1
      Tests/LibWeb/Layout/expected/grid/grid-area-non-token-parts-crash.txt
  19. 1 1
      Tests/LibWeb/Layout/expected/grid/grid-column-non-token-parts-crash.txt
  20. 1 1
      Tests/LibWeb/Layout/expected/grid/grid-row-start-non-token-parts-crash.txt
  21. 1 1
      Tests/LibWeb/Layout/expected/grid/inline-abspos-item.txt
  22. 1 1
      Tests/LibWeb/Layout/expected/grid/justify-content-cols.txt
  23. 1 1
      Tests/LibWeb/Layout/expected/grid/minmax-non-token-contents-crash.txt
  24. 1 1
      Tests/LibWeb/Layout/expected/grid/repeat-non-token-contents-crash.txt
  25. 3 3
      Tests/LibWeb/Layout/expected/inline-size.txt
  26. 1 1
      Tests/LibWeb/Layout/expected/input-image.txt
  27. 1 1
      Tests/LibWeb/Layout/expected/multi-code-point-graphemes.txt
  28. 1 1
      Tests/LibWeb/Layout/expected/ordered-list.txt
  29. 2 2
      Tests/LibWeb/Layout/expected/position-empty-pseudo-elements.txt
  30. 1 1
      Tests/LibWeb/Layout/expected/textarea-reset.txt
  31. 2 2
      Tests/LibWeb/Layout/expected/utf-16-be-xhtml-file-should-decode-correctly.txt
  32. 2 2
      Tests/LibWeb/Layout/expected/zero-height-replaced-box-with-aspect-ratio.txt
  33. 2 2
      Tests/LibWeb/Layout/expected/zero-size-replaced-box-with-aspect-ratio.txt
  34. 1 0
      Tests/LibWeb/Ref/expected/zero-area-child-creating-scrollable-overflow.html
  35. 9 0
      Tests/LibWeb/Ref/input/zero-area-child-creating-scrollable-overflow.html
  36. BIN
      Tests/LibWeb/Screenshot/images/css-color-functions-ref.png
  37. BIN
      Tests/LibWeb/Screenshot/images/css-gradients-ref.png

+ 4 - 0
Libraries/LibWeb/Layout/LayoutState.cpp

@@ -109,6 +109,10 @@ static CSSPixelRect measure_scrollable_overflow(Box const& box)
 
             auto child_border_box = child.paintable_box()->absolute_border_box_rect();
 
+            // Border boxes with zero area do not affect the scrollable overflow area.
+            if (child_border_box.is_empty())
+                return TraversalDecision::Continue;
+
             // NOTE: Here we check that the child is not wholly in the negative scrollable overflow region.
             if (child_border_box.bottom() < 0 || child_border_box.right() < 0)
                 return TraversalDecision::Continue;

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/bfc-float-left-break-vertically-2.txt

@@ -11,7 +11,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x150]
-    PaintableWithLines (BlockContainer<BODY>) [0,0 200x0] overflow: [0,0 200x150]
+    PaintableWithLines (BlockContainer<BODY>) [0,0 200x0] overflow: [0,100 150x50]
       PaintableWithLines (BlockContainer<UL>) [0,0 200x0]
         PaintableWithLines (BlockContainer<DIV>.red) [0,0 150x50]
         PaintableWithLines (BlockContainer<DIV>.green) [0,50 150x50]

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/margin-collapse-1.txt

@@ -16,7 +16,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,25 784x229] overflow: [8,25 784x254]
+    PaintableWithLines (BlockContainer<BODY>) [8,25 784x229]
       PaintableWithLines (BlockContainer<DIV>#foo) [33,25 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,152 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-element-js-offsets.txt

@@ -35,7 +35,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x152] overflow: [8,8 784x168]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x152]
       PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17]
         PaintableWithLines (InlineNode<SPAN>)
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/css-counters/basic.txt

@@ -88,7 +88,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x314] overflow: [8,16 784x330]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x314]
       PaintableWithLines (BlockContainer<DIV>) [8,16 784x149]
         PaintableWithLines (BlockContainer<P>) [8,16 784x17]
           PaintableWithLines (InlineNode(anonymous))

+ 1 - 1
Tests/LibWeb/Layout/expected/css-namespace-rule-matches.txt

@@ -13,7 +13,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,20 784x22] overflow: [8,20 784x42]
+    PaintableWithLines (BlockContainer<BODY>) [8,20 784x22]
       PaintableWithLines (BlockContainer<P>) [8,20 784x22]
         PaintableWithLines (InlineNode<A>)
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/css-namespace-rule-no-match.txt

@@ -13,7 +13,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,20 784x22] overflow: [8,20 784x42]
+    PaintableWithLines (BlockContainer<BODY>) [8,20 784x22]
       PaintableWithLines (BlockContainer<P>) [8,20 784x22]
         PaintableWithLines (InlineNode<A>)
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/css-text-transform-math-auto.txt

@@ -10,7 +10,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x17] overflow: [8,16 784x33]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x17]
       PaintableWithLines (BlockContainer<P>) [8,16 784x17]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,49 784x0]

+ 3 - 3
Tests/LibWeb/Layout/expected/css-values/comparison-functions.txt

@@ -7,8 +7,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0] overflow: [8,8 120x300]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0] overflow: [8,8 120x300]
-      PaintableWithLines (BlockContainer<DIV>.min) [8,8 80x0] overflow: [8,8 120x300]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0]
+      PaintableWithLines (BlockContainer<DIV>.min) [8,8 80x0]
         PaintableWithLines (BlockContainer<DIV>.max) [8,8 100x0] overflow: [8,8 120x300]
           PaintableWithLines (BlockContainer<DIV>.clamp) [8,8 120x300]

+ 6 - 6
Tests/LibWeb/Layout/expected/css-values/exponential-functions.txt

@@ -9,10 +9,10 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                 TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0] overflow: [8,8 160x0]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0] overflow: [8,8 160x0]
-      PaintableWithLines (BlockContainer<DIV>.pow) [8,8 80x0] overflow: [8,8 160x0]
-        PaintableWithLines (BlockContainer<DIV>.sqrt) [8,8 100x0] overflow: [8,8 160x0]
-          PaintableWithLines (BlockContainer<DIV>.hypot) [8,8 120x0] overflow: [8,8 160x0]
-            PaintableWithLines (BlockContainer<DIV>.log) [8,8 140x0] overflow: [8,8 160x0]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0]
+      PaintableWithLines (BlockContainer<DIV>.pow) [8,8 80x0]
+        PaintableWithLines (BlockContainer<DIV>.sqrt) [8,8 100x0]
+          PaintableWithLines (BlockContainer<DIV>.hypot) [8,8 120x0]
+            PaintableWithLines (BlockContainer<DIV>.log) [8,8 140x0]
               PaintableWithLines (BlockContainer<DIV>.exp) [8,8 160x0]

+ 3 - 3
Tests/LibWeb/Layout/expected/css-values/numeric-constants.txt

@@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0] overflow: [8,8 100x0]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0] overflow: [8,8 100x0]
-      PaintableWithLines (BlockContainer<DIV>.pi) [8,8 80x0] overflow: [8,8 100x0]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0]
+      PaintableWithLines (BlockContainer<DIV>.pi) [8,8 80x0]
         PaintableWithLines (BlockContainer<DIV>.e) [8,8 100x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/css-values/rect-non-token-contents-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 3 - 3
Tests/LibWeb/Layout/expected/css-values/sign-related-functions.txt

@@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0] overflow: [8,8 100x0]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0] overflow: [8,8 100x0]
-      PaintableWithLines (BlockContainer<DIV>.abs) [8,8 80x0] overflow: [8,8 100x0]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0]
+      PaintableWithLines (BlockContainer<DIV>.abs) [8,8 80x0]
         PaintableWithLines (BlockContainer<DIV>.sign) [8,8 100x0]

+ 4 - 4
Tests/LibWeb/Layout/expected/css-values/stepped-value-functions.txt

@@ -7,8 +7,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0] overflow: [8,8 120x0]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0] overflow: [8,8 120x0]
-      PaintableWithLines (BlockContainer<DIV>.round) [8,8 80x0] overflow: [8,8 120x0]
-        PaintableWithLines (BlockContainer<DIV>.mod) [8,8 100x0] overflow: [8,8 120x0]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 0x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 0x0]
+      PaintableWithLines (BlockContainer<DIV>.round) [8,8 80x0]
+        PaintableWithLines (BlockContainer<DIV>.mod) [8,8 100x0]
           PaintableWithLines (BlockContainer<DIV>.rem) [8,8 120x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/div_align.txt

@@ -86,7 +86,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x636]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x636]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x608] overflow: [8,8 784.484375x628]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x608] overflow: [8,8 784.484375x608]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x137]
         PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17]
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/document-write-incomplete-tag.txt

@@ -22,7 +22,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x83] overflow: [8,16 784x99]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x83]
       PaintableWithLines (BlockContainer<P>) [8,16 784x17]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,49 784x0]

+ 2 - 2
Tests/LibWeb/Layout/expected/flex/abspos-flex-child-with-auto-height.txt

@@ -5,8 +5,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <div.green> at (8,-42) content-size 100x200 children: inline
           TextNode <#text>
 
-ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,-42 800x642]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16] overflow: [0,-42 800x200]
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
     PaintableBox (Box<BODY>) [8,8 784x0] overflow: [8,-42 100x200]
       PaintableWithLines (BlockContainer<DIV>.abspos) [8,-42 100x100] overflow: [8,-42 100x200]
         PaintableWithLines (BlockContainer<DIV>.green) [8,-42 100x200]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/grid-area-non-token-parts-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/grid-column-non-token-parts-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/grid-row-start-non-token-parts-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/inline-abspos-item.txt

@@ -24,7 +24,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x537]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x521] overflow: [8,8 784x524]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x521]
       PaintableBox (Box<DIV>.grid) [12,8 559x521]
         PaintableWithLines (BlockContainer<DIV>) [18,117 200x150]
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/justify-content-cols.txt

@@ -102,7 +102,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x288]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x260] overflow: [8,8 784x280]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x260]
       PaintableBox (Box<DIV>.grid.justify-start) [8,8 784x20]
         PaintableWithLines (BlockContainer<DIV>) [8,8 60x20]
         PaintableWithLines (BlockContainer<DIV>) [84,8 60x20]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/minmax-non-token-contents-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/repeat-non-token-contents-crash.txt

@@ -7,6 +7,6 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,16 784x0]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x0]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]

+ 3 - 3
Tests/LibWeb/Layout/expected/inline-size.txt

@@ -24,9 +24,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <(anonymous)> at (8,1048) content-size 784x0 children: inline
         TextNode <#text>
 
-ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x1048]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x986] overflow: [0,0 800x1048]
-    PaintableWithLines (BlockContainer<BODY>) [8,70 784x908] overflow: [8,70 784x978]
+ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x986]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x986]
+    PaintableWithLines (BlockContainer<BODY>) [8,70 784x908]
       PaintableWithLines (BlockContainer<P>.min-inline-test) [8,70 784x200]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,340 784x76]

+ 1 - 1
Tests/LibWeb/Layout/expected/input-image.txt

@@ -27,7 +27,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x259] overflow: [8,8 784x275]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x259]
       PaintableWithLines (BlockContainer<FORM>) [8,8 784x259]
         ImagePaintable (ImageBox<INPUT>) [8,216 48x48]
           PaintableWithLines (BlockContainer(anonymous)) [8,8 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/multi-code-point-graphemes.txt

@@ -22,7 +22,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x83] overflow: [8,16 784x99]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x83]
       PaintableWithLines (BlockContainer<P>) [8,16 784x17]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,49 784x0]

+ 1 - 1
Tests/LibWeb/Layout/expected/ordered-list.txt

@@ -63,7 +63,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x135] overflow: [8,16 784x151]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x135]
       PaintableWithLines (BlockContainer<OL>) [8,16 784x51]
         PaintableWithLines (BlockContainer(anonymous)) [48,16 744x0]
         PaintableWithLines (ListItemBox<LI>) [48,16 744x17]

+ 2 - 2
Tests/LibWeb/Layout/expected/position-empty-pseudo-elements.txt

@@ -11,8 +11,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x158] overflow: [0,0 800x175]
-    PaintableWithLines (BlockContainer<BODY>) [8,25 784x125] overflow: [8,25 784x150]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x158]
+    PaintableWithLines (BlockContainer<BODY>) [8,25 784x125]
       PaintableWithLines (BlockContainer<DIV>.empty_content) [33,25 50x50]
         PaintableWithLines (BlockContainer(anonymous)) [33,25 50x50]
       PaintableWithLines (BlockContainer<DIV>.content_with_space) [33,100 50x50]

+ 1 - 1
Tests/LibWeb/Layout/expected/textarea-reset.txt

@@ -17,7 +17,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x34] overflow: [8,8 784x50]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x34]
       PaintableWithLines (BlockContainer<FORM>#form) [8,8 784x34]
         PaintableWithLines (BlockContainer<TEXTAREA>#textarea) [8,8 200x34]
           PaintableWithLines (BlockContainer<DIV>) [11,11 194x17]

+ 2 - 2
Tests/LibWeb/Layout/expected/utf-16-be-xhtml-file-should-decode-correctly.txt

@@ -11,8 +11,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x41] overflow: [0,0 800x49]
-    PaintableWithLines (BlockContainer<BODY>) [8,16 784x17] overflow: [8,16 784x33]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x41]
+    PaintableWithLines (BlockContainer<BODY>) [8,16 784x17]
       PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0]
       PaintableWithLines (BlockContainer<P>) [8,16 784x17]
         TextPaintable (TextNode<#text>)

+ 2 - 2
Tests/LibWeb/Layout/expected/zero-height-replaced-box-with-aspect-ratio.txt

@@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         SVGSVGBox <svg> at (8,8) content-size 100x100 [SVG] children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16] overflow: [0,0 800x108]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,8 100x100]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 10x0] overflow: [8,8 100x100]
         SVGSVGPaintable (SVGSVGBox<svg>) [8,8 100x100]

+ 2 - 2
Tests/LibWeb/Layout/expected/zero-size-replaced-box-with-aspect-ratio.txt

@@ -7,7 +7,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
-  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16] overflow: [0,0 800x108]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0] overflow: [8,8 100x100]
+  PaintableWithLines (BlockContainer<HTML>) [0,0 800x16]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x0]
       PaintableWithLines (BlockContainer<DIV>) [8,8 0x0] overflow: [8,8 100x100]
         SVGSVGPaintable (SVGSVGBox<svg>) [8,8 100x100]

+ 1 - 0
Tests/LibWeb/Ref/expected/zero-area-child-creating-scrollable-overflow.html

@@ -0,0 +1 @@
+<!-- This page is intentionally left blank. -->

+ 9 - 0
Tests/LibWeb/Ref/input/zero-area-child-creating-scrollable-overflow.html

@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<link rel="match" href="../expected/zero-area-child-creating-scrollable-overflow.html" />
+<style>
+  div {
+    position: absolute;
+    top: 150vh;
+  }
+</style>
+<div></div>

BIN
Tests/LibWeb/Screenshot/images/css-color-functions-ref.png


BIN
Tests/LibWeb/Screenshot/images/css-gradients-ref.png