diff --git a/Libraries/LibWeb/Layout/FormattingContext.cpp b/Libraries/LibWeb/Layout/FormattingContext.cpp index c26511f7c34..18426f62440 100644 --- a/Libraries/LibWeb/Layout/FormattingContext.cpp +++ b/Libraries/LibWeb/Layout/FormattingContext.cpp @@ -37,6 +37,10 @@ bool FormattingContext::creates_block_formatting_context(Box const& box) if (box.is_replaced_box()) return false; + // AD-HOC: We create a BFC for SVG foreignObject. + if (box.is_svg_foreign_object_box()) + return true; + // display: table if (box.display().is_table_inside()) { return false; 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 3fea9196012..91e01e3ffb1 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 @@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 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: 100 SVGSVGBox at (8,8) content-size 100x100 [SVG] children: inline - SVGForeignObjectBox at (8,8) content-size 100x100 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"