From e5d3a9d10b313b53d2c17c14ba380cf81b38452e Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Fri, 15 Oct 2021 11:53:23 +0100 Subject: [PATCH] LibWeb: Fix pseudo-element selector serialization We want to check the last SimpleSelector, not the first one. We don't have to check that a SimpleSelector exists since a CompoundSelector without one is invalid. --- Userland/Libraries/LibWeb/CSS/Selector.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/Selector.cpp b/Userland/Libraries/LibWeb/CSS/Selector.cpp index 208fbccceb..425a7f9cac 100644 --- a/Userland/Libraries/LibWeb/CSS/Selector.cpp +++ b/Userland/Libraries/LibWeb/CSS/Selector.cpp @@ -214,12 +214,11 @@ String Selector::serialize() const break; } } else { - // 4. If this is the last part of the chain of the selector and there is a pseudo-element, append "::" followed by the name of the pseudo-element, to s. - // FIXME: This doesn't feel entirely correct. Our model of pseudo-elements seems off. - if (!compound_selector.simple_selectors.is_empty() - && compound_selector.simple_selectors.first().type == Selector::SimpleSelector::Type::PseudoElement) { + // 4. If this is the last part of the chain of the selector and there is a pseudo-element, + // append "::" followed by the name of the pseudo-element, to s. + if (compound_selector.simple_selectors.last().type == Selector::SimpleSelector::Type::PseudoElement) { s.append("::"); - s.append(pseudo_element_name(compound_selector.simple_selectors.first().pseudo_element)); + s.append(pseudo_element_name(compound_selector.simple_selectors.last().pseudo_element)); } } }