Преглед изворни кода

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.
Sam Atkins пре 3 година
родитељ
комит
e5d3a9d10b
1 измењених фајлова са 4 додато и 5 уклоњено
  1. 4 5
      Userland/Libraries/LibWeb/CSS/Selector.cpp

+ 4 - 5
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));
             }
         }
     }