From 9c656dd7d1702532b559e1d009bf957593bb8580 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Wed, 18 Jun 2025 09:44:47 +0100 Subject: [PATCH] LibWeb/Layout: Only apply ::before/::after creation rules to them --- Libraries/LibWeb/Layout/TreeBuilder.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Libraries/LibWeb/Layout/TreeBuilder.cpp b/Libraries/LibWeb/Layout/TreeBuilder.cpp index 654bb9c95f8..7183a3bbfed 100644 --- a/Libraries/LibWeb/Layout/TreeBuilder.cpp +++ b/Libraries/LibWeb/Layout/TreeBuilder.cpp @@ -195,9 +195,10 @@ void TreeBuilder::create_pseudo_element_if_needed(DOM::Element& element, CSS::Ps auto pseudo_element_display = pseudo_element_style->display(); // ::before and ::after only exist if they have content. `content: normal` computes to `none` for them. // We also don't create them if they are `display: none`. - if (pseudo_element_display.is_none() - || pseudo_element_content.type == CSS::ContentData::Type::Normal - || pseudo_element_content.type == CSS::ContentData::Type::None) + if (first_is_one_of(pseudo_element, CSS::PseudoElement::Before, CSS::PseudoElement::After) + && (pseudo_element_display.is_none() + || pseudo_element_content.type == CSS::ContentData::Type::Normal + || pseudo_element_content.type == CSS::ContentData::Type::None)) return; auto pseudo_element_node = DOM::Element::create_layout_node_for_display_type(document, pseudo_element_display, *pseudo_element_style, nullptr);