From f0ce4f43a6e2132eb57ab3fc546fef357eafce69 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Thu, 8 May 2025 11:48:34 +0100 Subject: [PATCH] LibWeb: Make unknown webkit pseudo-elements safe to dump This fixes a couple of crashes when dumping the style sheets on ladybird.org --- Libraries/LibWeb/Dump.cpp | 2 +- .../CodeGenerators/LibWeb/GenerateCSSPseudoElement.cpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Libraries/LibWeb/Dump.cpp b/Libraries/LibWeb/Dump.cpp index 7fa222b8f42..d1e3b74af4d 100644 --- a/Libraries/LibWeb/Dump.cpp +++ b/Libraries/LibWeb/Dump.cpp @@ -590,7 +590,7 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector, int in if (simple_selector.type == CSS::Selector::SimpleSelector::Type::PseudoElement) { auto const& pseudo_element = simple_selector.pseudo_element(); - builder.appendff(" pseudo_element={}", CSS::pseudo_element_name(pseudo_element.type())); + builder.appendff(" pseudo_element={}", pseudo_element.serialize()); auto pseudo_element_metadata = CSS::pseudo_element_metadata(pseudo_element.type()); switch (pseudo_element_metadata.parameter_type) { diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPseudoElement.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPseudoElement.cpp index c6432d4d201..70cb12e5f1d 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPseudoElement.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/GenerateCSSPseudoElement.cpp @@ -525,8 +525,13 @@ PseudoElementMetadata pseudo_element_metadata(PseudoElement pseudo_element) }); generator.append(R"~~~( - case PseudoElement::KnownPseudoElementCount: case PseudoElement::UnknownWebKit: + return { + .parameter_type = PseudoElementMetadata::ParameterType::None, + .is_valid_as_function = false, + .is_valid_as_identifier = true, + }; + case PseudoElement::KnownPseudoElementCount: break; } VERIFY_NOT_REACHED();