diff --git a/Libraries/LibWeb/Layout/Node.cpp b/Libraries/LibWeb/Layout/Node.cpp index b6768b22d53..28974d3291a 100644 --- a/Libraries/LibWeb/Layout/Node.cpp +++ b/Libraries/LibWeb/Layout/Node.cpp @@ -1413,6 +1413,10 @@ bool NodeWithStyleAndBoxModelMetrics::should_create_inline_continuation() const if (is_svg_box()) return false; + // SVGForeignObjectBoxes should never be split. + if (is_svg_foreign_object_box()) + return false; + return true; } diff --git a/Tests/LibWeb/Layout/expected/svg/svg-foreign-object-with-block-element.txt b/Tests/LibWeb/Layout/expected/svg/svg-foreign-object-with-block-element.txt index a399623e2a2..90135bba377 100644 --- a/Tests/LibWeb/Layout/expected/svg/svg-foreign-object-with-block-element.txt +++ b/Tests/LibWeb/Layout/expected/svg/svg-foreign-object-with-block-element.txt @@ -1,31 +1,22 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline - BlockContainer at (0,0) content-size 800x316 [BFC] children: not-inline - BlockContainer at (8,8) content-size 784x300 children: not-inline - BlockContainer <(anonymous)> at (8,8) content-size 784x100 children: inline - frag 0 from SVGSVGBox start: 0, length: 0, rect: [8,8 100x100] baseline: 100 - SVGSVGBox at (8,8) content-size 100x100 [SVG] children: inline - BlockContainer <(anonymous)> at (8,108) content-size 784x100 children: not-inline continuation - SVGForeignObjectBox at (8,108) content-size 100x100 [BFC] children: not-inline - BlockContainer
at (8,108) content-size 100x18 children: inline - frag 0 from TextNode start: 0, length: 3, rect: [8,108 27.15625x18] baseline: 13.796875 + BlockContainer at (0,0) content-size 800x116 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x100 children: inline + frag 0 from SVGSVGBox start: 0, length: 0, rect: [8,8 100x100] baseline: 13.796875 + SVGSVGBox at (8,8) content-size 100x100 [SVG] children: not-inline + SVGForeignObjectBox at (8,8) content-size 100x100 [BFC] children: not-inline + BlockContainer
at (8,8) content-size 100x18 children: inline + frag 0 from TextNode start: 0, length: 3, rect: [8,8 27.15625x18] baseline: 13.796875 "foo" TextNode <#text> - BlockContainer <(anonymous)> at (8,208) content-size 784x100 children: inline - frag 0 from SVGSVGBox start: 0, length: 0, rect: [8,208 100x100] baseline: 100 - SVGSVGBox at (8,208) content-size 100x100 [SVG] children: not-inline continuation ViewportPaintable (Viewport<#document>) [0,0 800x600] - PaintableWithLines (BlockContainer) [0,0 800x316] - PaintableWithLines (BlockContainer) [8,8 784x300] - PaintableWithLines (BlockContainer(anonymous)) [8,8 784x100] - SVGSVGPaintable (SVGSVGBox) [8,8 100x100] - PaintableWithLines (BlockContainer(anonymous)) [8,108 784x100] - SVGForeignObjectPaintable (SVGForeignObjectBox) [8,108 100x100] - PaintableWithLines (BlockContainer
) [8,108 100x18] + PaintableWithLines (BlockContainer) [0,0 800x116] + PaintableWithLines (BlockContainer) [8,8 784x100] + SVGSVGPaintable (SVGSVGBox) [8,8 100x100] + SVGForeignObjectPaintable (SVGForeignObjectBox) [8,8 100x100] + PaintableWithLines (BlockContainer
) [8,8 100x18] TextPaintable (TextNode<#text>) - PaintableWithLines (BlockContainer(anonymous)) [8,208 784x100] - SVGSVGPaintable (SVGSVGBox) [8,208 100x100] SC for Viewport<#document> [0,0 800x600] [children: 1] (z-index: auto) - SC for BlockContainer [0,0 800x316] [children: 1] (z-index: auto) - SC for SVGForeignObjectBox [8,108 100x100] [children: 0] (z-index: auto) + SC for BlockContainer [0,0 800x116] [children: 1] (z-index: auto) + SC for SVGForeignObjectBox [8,8 100x100] [children: 0] (z-index: auto)