From 6f800caeaa3659fb0c7a2d940853d34015b2b8b1 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Wed, 23 Apr 2025 22:26:45 +0200 Subject: [PATCH] LibWeb: Don't mess up the order of nodes when wrapping inline contents Whenever we introduce a block element in a container that at that point has only had inline children, we create an anonymous wrapper for all the inline elements so we can keep the invariant that each container contains either inline or non-inline children. For some reason, we ignore all the out-of-flow nodes since they are layed out separately and it was thought that this shouldn't matter. However, if we are dealing with inline blocks and floating blocks, the order of the inline contents _including_ out-of-flow nodes becomes very important: floating blocks need to take the order of nodes into account when positioning themselves. Fix this by simply hoisting the out-of-flow nodes into the anonymous wrapper as well. Fixes the order of blocks in #4212. The gap is still not present. --- Libraries/LibWeb/Layout/TreeBuilder.cpp | 8 +--- ...-consider-all-currently-stacked-floats.txt | 18 ++++----- .../expected/block-and-inline/clearfix.txt | 4 +- .../expected/block-and-inline/float-2.txt | 6 +-- ...-clear-by-line-break-followed-by-block.txt | 4 +- ...ar-right-should-not-affect-inline-left.txt | 4 +- ...oat-vertical-offset-by-preceding-float.txt | 4 +- .../float-with-inline-contents-hoisted.txt | 40 +++++++++++++++++++ .../expected/position-absolute-top-left.txt | 32 +++++++-------- .../resolve-height-of-containing-block.txt | 4 +- .../expected/set-margin-of-floating-box.txt | 6 +-- .../Layout/expected/tab-size-spacing-001.txt | 4 +- .../float-with-inline-contents-hoisted.html | 26 ++++++++++++ .../floats/zero-space-between-floats-004.txt | 4 +- 14 files changed, 112 insertions(+), 52 deletions(-) create mode 100644 Tests/LibWeb/Layout/expected/block-and-inline/float-with-inline-contents-hoisted.txt create mode 100644 Tests/LibWeb/Layout/input/block-and-inline/float-with-inline-contents-hoisted.html diff --git a/Libraries/LibWeb/Layout/TreeBuilder.cpp b/Libraries/LibWeb/Layout/TreeBuilder.cpp index 0315c647b07..88202974f6a 100644 --- a/Libraries/LibWeb/Layout/TreeBuilder.cpp +++ b/Libraries/LibWeb/Layout/TreeBuilder.cpp @@ -19,8 +19,6 @@ #include #include #include -#include -#include #include #include #include @@ -128,12 +126,8 @@ static Layout::Node& insertion_parent_for_block_node(Layout::NodeWithStyle& layo // Parent block has inline-level children (our siblings); wrap these siblings into an anonymous wrapper block. Vector> children; - for (GC::Ptr child = layout_parent.first_child(); child; child = child->next_sibling()) { - // NOTE: We let out-of-flow children stay in the parent, to preserve tree structure. - if (child->is_out_of_flow()) - continue; + for (GC::Ptr child = layout_parent.first_child(); child; child = child->next_sibling()) children.append(*child); - } auto wrapper = layout_parent.create_anonymous_wrapper(); wrapper->set_children_are_inline(true); diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt b/Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt index 38c5e978975..c155d39d344 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt @@ -3,15 +3,15 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer <(anonymous)> at (0,0) content-size 800x0 children: inline TextNode <#text> BlockContainer at (8,8) content-size 784x34 children: not-inline - BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline - BlockContainer at (108,8) content-size 29.109375x17 floating [BFC] children: inline - frag 0 from TextNode start: 0, length: 3, rect: [108,8 29.109375x17] baseline: 13.296875 - "xxx" - TextNode <#text> BlockContainer <(anonymous)> at (8,8) content-size 784x17 children: inline frag 0 from TextNode start: 1, length: 3, rect: [137.109375,8 27.640625x17] baseline: 13.296875 "bar" + BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline TextNode <#text> + BlockContainer at (108,8) content-size 29.109375x17 floating [BFC] children: inline + frag 0 from TextNode start: 0, length: 3, rect: [108,8 29.109375x17] baseline: 13.296875 + "xxx" + TextNode <#text> TextNode <#text> BlockContainer
at (8,25) content-size 784x17 children: inline frag 0 from TextNode start: 1, length: 3, rect: [129.515625,25 27.203125x17] baseline: 13.296875 @@ -28,11 +28,11 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x108] PaintableWithLines (BlockContainer(anonymous)) [0,0 800x0] - PaintableWithLines (BlockContainer) [8,8 784x34] overflow: [8,8 784x100] - PaintableWithLines (BlockContainer
.big-float) [8,8 100x100] - PaintableWithLines (BlockContainer
.xxx) [108,8 29.109375x17] - TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer) [8,8 784x34] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17] + PaintableWithLines (BlockContainer
.big-float) [8,8 100x100] + PaintableWithLines (BlockContainer
.xxx) [108,8 29.109375x17] + TextPaintable (TextNode<#text>) TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer
) [8,25 784x17] PaintableWithLines (BlockContainer
.yyy) [108,25 21.515625x17] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/clearfix.txt b/Tests/LibWeb/Layout/expected/block-and-inline/clearfix.txt index e769496db77..2d008679efa 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/clearfix.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/clearfix.txt @@ -2,9 +2,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (0,0) content-size 800x600 [BFC] children: not-inline BlockContainer at (8,8) content-size 784x100 children: not-inline BlockContainer
at (8,8) content-size 784x100 children: not-inline - BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline BlockContainer <(anonymous)> at (8,8) content-size 784x0 children: inline TextNode <#text> + BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline TextNode <#text> BlockContainer at (8,108) content-size 784x0 children: not-inline BlockContainer <(anonymous)> at (8,108) content-size 784x0 children: inline @@ -18,8 +18,8 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x600] PaintableWithLines (BlockContainer) [8,8 784x100] PaintableWithLines (BlockContainer
) [8,8 784x100] - PaintableWithLines (BlockContainer
.square.white) [8,8 100x100] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x0] + PaintableWithLines (BlockContainer
.square.white) [8,8 100x100] PaintableWithLines (BlockContainer
.clearfix) [8,108 784x0] PaintableWithLines (BlockContainer(anonymous)) [8,108 784x0] PaintableWithLines (BlockContainer
.square.black) [8,108 49x49] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-2.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-2.txt index d81afb9bf48..6c9e1e131c0 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/float-2.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-2.txt @@ -3,9 +3,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer <(anonymous)> at (0,0) content-size 800x0 children: inline TextNode <#text> BlockContainer at (8,8) content-size 784x17 children: not-inline - BlockContainer at (9,9) content-size 50x50 floating [BFC] children: not-inline BlockContainer <(anonymous)> at (8,8) content-size 784x0 children: inline TextNode <#text> + BlockContainer at (9,9) content-size 50x50 floating [BFC] children: not-inline TextNode <#text> BlockContainer at (8,8) content-size 784x17 children: inline frag 0 from TextNode start: 0, length: 4, rect: [60,8 37.578125x17] baseline: 13.296875 @@ -17,9 +17,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x60] PaintableWithLines (BlockContainer(anonymous)) [0,0 800x0] - PaintableWithLines (BlockContainer) [8,8 784x17] overflow: [8,8 784x52] - PaintableWithLines (BlockContainer
#b) [8,8 52x52] + PaintableWithLines (BlockContainer) [8,8 784x17] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x0] + PaintableWithLines (BlockContainer
#b) [8,8 52x52] PaintableWithLines (BlockContainer
#a) [8,8 784x17] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer(anonymous)) [8,25 784x0] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break-followed-by-block.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break-followed-by-block.txt index ba0a21eaab1..10f783f91e6 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break-followed-by-block.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-by-line-break-followed-by-block.txt @@ -1,8 +1,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (0,0) content-size 800x157 [BFC] children: not-inline BlockContainer at (8,8) content-size 784x133 children: not-inline - BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline BlockContainer <(anonymous)> at (8,8) content-size 784x100 children: inline + BlockContainer at (8,8) content-size 100x100 floating [BFC] children: not-inline TextNode <#text> BreakNode TextNode <#text> @@ -16,8 +16,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x157] PaintableWithLines (BlockContainer) [8,8 784x133] - PaintableWithLines (BlockContainer
.a) [8,8 100x100] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x100] + PaintableWithLines (BlockContainer
.a) [8,8 100x100] PaintableWithLines (BlockContainer

) [8,124 784x17] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer(anonymous)) [8,157 784x0] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-right-should-not-affect-inline-left.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-right-should-not-affect-inline-left.txt index 0df1df717e6..293a46cee0c 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-right-should-not-affect-inline-left.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-clear-right-should-not-affect-inline-left.txt @@ -1,8 +1,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (0,0) content-size 650x466 [BFC] children: not-inline BlockContainer at (8,16) content-size 634x384 children: not-inline - BlockContainer at (342,16) content-size 300x225 floating [BFC] children: not-inline BlockContainer <(anonymous)> at (8,16) content-size 634x0 children: inline + BlockContainer at (342,16) content-size 300x225 floating [BFC] children: not-inline TextNode <#text> BlockContainer

at (8,16) content-size 634x68 children: inline frag 0 from TextNode start: 0, length: 27, rect: [8,16 232.84375x17] baseline: 13.296875 @@ -25,8 +25,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 650x466] PaintableWithLines (BlockContainer) [8,16 634x384] - PaintableWithLines (BlockContainer

.a) [342,16 300x225] PaintableWithLines (BlockContainer(anonymous)) [8,16 634x0] + PaintableWithLines (BlockContainer
.a) [342,16 300x225] PaintableWithLines (BlockContainer

) [8,16 634x68] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer(anonymous)) [8,100 634x0] diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-vertical-offset-by-preceding-float.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-vertical-offset-by-preceding-float.txt index b7069fe68f9..e68f829bccc 100644 --- a/Tests/LibWeb/Layout/expected/block-and-inline/float-vertical-offset-by-preceding-float.txt +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-vertical-offset-by-preceding-float.txt @@ -1,8 +1,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (0,0) content-size 800x600 [BFC] children: not-inline BlockContainer at (8,16) content-size 784x51 children: not-inline - BlockContainer

at (8,16) content-size 50x50 floating [BFC] children: not-inline BlockContainer <(anonymous)> at (8,16) content-size 784x0 children: inline + BlockContainer
at (8,16) content-size 50x50 floating [BFC] children: not-inline TextNode <#text> BlockContainer

at (8,16) content-size 784x51 children: inline frag 0 from TextNode start: 0, length: 1, rect: [58,16 14.265625x17] baseline: 13.296875 @@ -23,8 +23,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x600] PaintableWithLines (BlockContainer) [8,16 784x51] overflow: [8,16 784x117] - PaintableWithLines (BlockContainer

) [8,16 50x50] PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0] + PaintableWithLines (BlockContainer
) [8,16 50x50] PaintableWithLines (BlockContainer

) [8,16 784x51] TextPaintable (TextNode<#text>) TextPaintable (TextNode<#text>) diff --git a/Tests/LibWeb/Layout/expected/block-and-inline/float-with-inline-contents-hoisted.txt b/Tests/LibWeb/Layout/expected/block-and-inline/float-with-inline-contents-hoisted.txt new file mode 100644 index 00000000000..5b92f33bc97 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/block-and-inline/float-with-inline-contents-hoisted.txt @@ -0,0 +1,40 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x308 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x103 children: not-inline + BlockContainer <(anonymous)> at (8,8) content-size 784x103 children: inline + frag 0 from BlockContainer start: 0, length: 0, rect: [8,8 100x100] baseline: 100 + frag 1 from TextNode start: 0, length: 1, rect: [108,94 8x17] baseline: 13.296875 + " " + frag 2 from BlockContainer start: 0, length: 0, rect: [116,8 100x100] baseline: 100 + TextNode <#text> + BlockContainer at (8,8) content-size 100x100 inline-block [BFC] children: not-inline + BlockContainer at (8,8) content-size 100x100 children: not-inline + TextNode <#text> + BlockContainer at (8,108) content-size 784x100 floating [BFC] children: not-inline + BlockContainer at (8,108) content-size 100x100 children: not-inline + TextNode <#text> + BlockContainer at (116,8) content-size 100x100 inline-block [BFC] children: not-inline + BlockContainer at (116,8) content-size 100x100 children: not-inline + TextNode <#text> + BlockContainer at (8,208) content-size 784x100 floating [BFC] children: not-inline + BlockContainer at (8,208) content-size 100x100 children: not-inline + TextNode <#text> + BlockContainer

at (8,111) content-size 784x0 children: not-inline + BlockContainer <(anonymous)> at (8,111) content-size 784x0 children: inline + TextNode <#text> + +ViewportPaintable (Viewport<#document>) [0,0 800x600] + PaintableWithLines (BlockContainer) [0,0 800x308] + PaintableWithLines (BlockContainer) [8,8 784x103] + PaintableWithLines (BlockContainer(anonymous)) [8,8 784x103] + PaintableWithLines (BlockContainer
.a) [8,8 100x100] + PaintableWithLines (BlockContainer
.box.green) [8,8 100x100] + TextPaintable (TextNode<#text>) + PaintableWithLines (BlockContainer
.b) [8,108 784x100] + PaintableWithLines (BlockContainer
.box.blue) [8,108 100x100] + PaintableWithLines (BlockContainer
.a) [116,8 100x100] + PaintableWithLines (BlockContainer
.box.green) [116,8 100x100] + PaintableWithLines (BlockContainer
.b) [8,208 784x100] + PaintableWithLines (BlockContainer
.box.blue) [8,208 100x100] + PaintableWithLines (BlockContainer
) [8,111 784x0] + PaintableWithLines (BlockContainer(anonymous)) [8,111 784x0] diff --git a/Tests/LibWeb/Layout/expected/position-absolute-top-left.txt b/Tests/LibWeb/Layout/expected/position-absolute-top-left.txt index a4d1aa4c009..531018b4688 100644 --- a/Tests/LibWeb/Layout/expected/position-absolute-top-left.txt +++ b/Tests/LibWeb/Layout/expected/position-absolute-top-left.txt @@ -3,19 +3,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer <(anonymous)> at (0,0) content-size 800x0 children: inline TextNode <#text> BlockContainer at (8,8) content-size 784x600 children: not-inline - BlockContainer at (208,208) content-size 200x200 positioned [BFC] children: inline - TextNode <#text> - BlockContainer at (308,308) content-size 100x100 positioned [BFC] children: not-inline - TextNode <#text> - BlockContainer at (258,258) content-size 100x100 positioned [BFC] children: inline - TextNode <#text> - BlockContainer at (308,308) content-size 50x50 positioned [BFC] children: not-inline - TextNode <#text> - TextNode <#text> - BlockContainer at (508,508) content-size 100x100 positioned [BFC] children: not-inline - TextNode <#text> BlockContainer <(anonymous)> at (8,8) content-size 784x0 children: inline TextNode <#text> + BlockContainer at (208,208) content-size 200x200 positioned [BFC] children: inline + TextNode <#text> + BlockContainer at (308,308) content-size 100x100 positioned [BFC] children: not-inline + TextNode <#text> + BlockContainer at (258,258) content-size 100x100 positioned [BFC] children: inline + TextNode <#text> + BlockContainer at (308,308) content-size 50x50 positioned [BFC] children: not-inline + TextNode <#text> + TextNode <#text> + BlockContainer at (508,508) content-size 100x100 positioned [BFC] children: not-inline + TextNode <#text> TextNode <#text> BlockContainer at (8,8) content-size 200x200 children: not-inline BlockContainer <(anonymous)> at (8,8) content-size 200x0 children: inline @@ -39,12 +39,12 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x616] PaintableWithLines (BlockContainer) [0,0 800x616] PaintableWithLines (BlockContainer(anonymous)) [0,0 800x0] PaintableWithLines (BlockContainer) [8,8 784x600] - PaintableWithLines (BlockContainer
.blue.absolute) [208,208 200x200] - PaintableWithLines (BlockContainer
.red.absolute) [308,308 100x100] - PaintableWithLines (BlockContainer
.yellow.absolute) [258,258 100x100] - PaintableWithLines (BlockContainer
.black.absolute) [308,308 50x50] - PaintableWithLines (BlockContainer
.green.absolute) [508,508 100x100] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x0] + PaintableWithLines (BlockContainer
.blue.absolute) [208,208 200x200] + PaintableWithLines (BlockContainer
.red.absolute) [308,308 100x100] + PaintableWithLines (BlockContainer
.yellow.absolute) [258,258 100x100] + PaintableWithLines (BlockContainer
.black.absolute) [308,308 50x50] + PaintableWithLines (BlockContainer
.green.absolute) [508,508 100x100] PaintableWithLines (BlockContainer
.blue) [8,8 200x200] overflow: [8,8 200x300] PaintableWithLines (BlockContainer(anonymous)) [8,8 200x0] PaintableWithLines (BlockContainer
.red) [8,8 100x100] diff --git a/Tests/LibWeb/Layout/expected/resolve-height-of-containing-block.txt b/Tests/LibWeb/Layout/expected/resolve-height-of-containing-block.txt index db6870d6f9a..67e53433dbb 100644 --- a/Tests/LibWeb/Layout/expected/resolve-height-of-containing-block.txt +++ b/Tests/LibWeb/Layout/expected/resolve-height-of-containing-block.txt @@ -9,9 +9,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer <(anonymous)> at (8,16) content-size 1280x0 children: inline TextNode <#text> BlockContainer
at (8,16) content-size 1280x400 children: not-inline - ImageBox at (488,16) content-size 800x400 floating children: not-inline BlockContainer <(anonymous)> at (8,16) content-size 1280x0 children: inline TextNode <#text> + ImageBox at (488,16) content-size 800x0 floating children: not-inline TextNode <#text> BlockContainer

at (8,16) content-size 1280x17 children: inline frag 0 from TextNode start: 0, length: 4, rect: [8,16 37.21875x17] baseline: 13.296875 @@ -32,8 +32,8 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 1288x824] PaintableWithLines (BlockContainer

.foo) [8,16 1280x800] PaintableWithLines (BlockContainer(anonymous)) [8,16 1280x0] PaintableWithLines (BlockContainer
) [8,16 1280x400] - ImagePaintable (ImageBox) [488,16 800x400] PaintableWithLines (BlockContainer(anonymous)) [8,16 1280x0] + ImagePaintable (ImageBox) [488,16 800x0] PaintableWithLines (BlockContainer

) [8,16 1280x17] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer(anonymous)) [8,49 1280x0] diff --git a/Tests/LibWeb/Layout/expected/set-margin-of-floating-box.txt b/Tests/LibWeb/Layout/expected/set-margin-of-floating-box.txt index c8793e47ed5..e20fb4a2d37 100644 --- a/Tests/LibWeb/Layout/expected/set-margin-of-floating-box.txt +++ b/Tests/LibWeb/Layout/expected/set-margin-of-floating-box.txt @@ -3,9 +3,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer <(anonymous)> at (0,0) content-size 800x0 children: inline TextNode <#text> BlockContainer at (8,16) content-size 784x17 children: not-inline - ImageBox at (8,16) content-size 200x100 floating children: not-inline BlockContainer <(anonymous)> at (8,16) content-size 784x0 children: inline TextNode <#text> + ImageBox at (8,16) content-size 200x100 floating children: not-inline TextNode <#text> BlockContainer

at (8,16) content-size 784x17 children: inline frag 0 from TextNode start: 0, length: 4, rect: [228,16 37.21875x17] baseline: 13.296875 @@ -17,9 +17,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x116] PaintableWithLines (BlockContainer(anonymous)) [0,0 800x0] - PaintableWithLines (BlockContainer) [8,16 784x17] overflow: [8,16 784x100] - ImagePaintable (ImageBox) [8,16 200x100] + PaintableWithLines (BlockContainer) [8,16 784x17] PaintableWithLines (BlockContainer(anonymous)) [8,16 784x0] + ImagePaintable (ImageBox) [8,16 200x100] PaintableWithLines (BlockContainer

) [8,16 784x17] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer(anonymous)) [8,49 784x0] diff --git a/Tests/LibWeb/Layout/expected/tab-size-spacing-001.txt b/Tests/LibWeb/Layout/expected/tab-size-spacing-001.txt index bfed282d317..49d5775ecf0 100644 --- a/Tests/LibWeb/Layout/expected/tab-size-spacing-001.txt +++ b/Tests/LibWeb/Layout/expected/tab-size-spacing-001.txt @@ -1,8 +1,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline BlockContainer at (0,0) content-size 800x39 [BFC] children: not-inline BlockContainer at (8,8) content-size 784x23 children: not-inline - BlockContainer at (186,10) content-size 16x16 positioned [BFC] children: not-inline BlockContainer <(anonymous)> at (8,8) content-size 784x0 children: inline + BlockContainer at (186,10) content-size 16x16 positioned [BFC] children: not-inline TextNode <#text> BlockContainer at (8,8) content-size 784x23 children: inline frag 0 from TextNode start: 0, length: 1, rect: [8,17 148x14] baseline: 10.890625 @@ -16,8 +16,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline ViewportPaintable (Viewport<#document>) [0,0 800x600] PaintableWithLines (BlockContainer) [0,0 800x39] PaintableWithLines (BlockContainer) [8,8 784x23] - PaintableWithLines (BlockContainer

.ref) [184,8 20x20] PaintableWithLines (BlockContainer(anonymous)) [8,8 784x0] + PaintableWithLines (BlockContainer
.ref) [184,8 20x20] PaintableWithLines (BlockContainer
.test) [8,8 784x23] TextPaintable (TextNode<#text>) PaintableWithLines (BlockContainer) [156,8 20x20] diff --git a/Tests/LibWeb/Layout/input/block-and-inline/float-with-inline-contents-hoisted.html b/Tests/LibWeb/Layout/input/block-and-inline/float-with-inline-contents-hoisted.html new file mode 100644 index 00000000000..c0cdc239700 --- /dev/null +++ b/Tests/LibWeb/Layout/input/block-and-inline/float-with-inline-contents-hoisted.html @@ -0,0 +1,26 @@ + + + +
+
+
+
+
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/CSS2/floats/zero-space-between-floats-004.txt b/Tests/LibWeb/Text/expected/wpt-import/css/CSS2/floats/zero-space-between-floats-004.txt index fdf65c6f5d3..22e1c5b0ca4 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/CSS2/floats/zero-space-between-floats-004.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/CSS2/floats/zero-space-between-floats-004.txt @@ -2,5 +2,5 @@ Harness status: OK Found 1 tests -1 Fail -Fail #container 1 \ No newline at end of file +1 Pass +Pass #container 1 \ No newline at end of file