From f1be662f683155705f851bcf440fe30d0e606a87 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 29 Sep 2024 10:54:46 +0200 Subject: [PATCH] LibWeb: Always blockify the root element MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is what the spec tells us to do: The root element’s display type is always blockified, and its principal box always establishes an independent formatting context. Additionally, a display of contents computes to block on the root element. Spec link: https://drafts.csswg.org/css-display/#root Fixes #1562 --- Tests/LibWeb/Layout/expected/css-all-unset.txt | 6 +++--- .../LibWeb/Layout/expected/html-display-contents.txt | 11 +++++++++++ Tests/LibWeb/Layout/expected/html-display-inline.txt | 11 +++++++++++ .../Layout/expected/replaced-within-max-content.txt | 2 +- .../expected/svg/svg-as-image-implicit-viewbox.txt | 2 +- Tests/LibWeb/Layout/expected/svg/svg-as-image.txt | 2 +- .../svg-with-zero-intrinsic-size-and-no-viewbox.txt | 6 +++--- .../expected/zero-height-viewport-svg-image.txt | 2 +- .../Layout/expected/zero-width-viewport-svg-image.txt | 2 +- Tests/LibWeb/Layout/input/html-display-contents.html | 1 + Tests/LibWeb/Layout/input/html-display-inline.html | 1 + Userland/Libraries/LibWeb/CSS/StyleComputer.cpp | 10 +++++++++- 12 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 Tests/LibWeb/Layout/expected/html-display-contents.txt create mode 100644 Tests/LibWeb/Layout/expected/html-display-inline.txt create mode 100644 Tests/LibWeb/Layout/input/html-display-contents.html create mode 100644 Tests/LibWeb/Layout/input/html-display-inline.html diff --git a/Tests/LibWeb/Layout/expected/css-all-unset.txt b/Tests/LibWeb/Layout/expected/css-all-unset.txt index c16f70bf4b0..4ec6d920d4a 100644 --- a/Tests/LibWeb/Layout/expected/css-all-unset.txt +++ b/Tests/LibWeb/Layout/expected/css-all-unset.txt @@ -1,5 +1,5 @@ -Viewport <#document> at (0,0) content-size 800x600 children: inline - InlineNode +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x17 [BFC] children: inline InlineNode InlineNode