diff --git a/Libraries/LibWeb/CSS/Selector.h b/Libraries/LibWeb/CSS/Selector.h index 84f8ad21fa..b61285847a 100644 --- a/Libraries/LibWeb/CSS/Selector.h +++ b/Libraries/LibWeb/CSS/Selector.h @@ -47,6 +47,7 @@ public: enum class PseudoClass { None, Link, + Visited, Hover, Focus, FirstChild, diff --git a/Libraries/LibWeb/CSS/SelectorEngine.cpp b/Libraries/LibWeb/CSS/SelectorEngine.cpp index a2a89c911f..654fe6ac95 100644 --- a/Libraries/LibWeb/CSS/SelectorEngine.cpp +++ b/Libraries/LibWeb/CSS/SelectorEngine.cpp @@ -53,6 +53,9 @@ bool matches(const Selector::SimpleSelector& component, const Element& element) if (!element.is_link()) return false; break; + case Selector::SimpleSelector::PseudoClass::Visited: + // FIXME: Maybe match this selector sometimes? + return false; case Selector::SimpleSelector::PseudoClass::Hover: if (!matches_hover_pseudo_class(element)) return false; diff --git a/Libraries/LibWeb/Parser/CSSParser.cpp b/Libraries/LibWeb/Parser/CSSParser.cpp index 18f7bc5264..490f0c15ab 100644 --- a/Libraries/LibWeb/Parser/CSSParser.cpp +++ b/Libraries/LibWeb/Parser/CSSParser.cpp @@ -542,6 +542,8 @@ public: if (pseudo_name.equals_ignoring_case("link")) simple_selector.pseudo_class = Selector::SimpleSelector::PseudoClass::Link; + else if (pseudo_name.equals_ignoring_case("visited")) + simple_selector.pseudo_class = Selector::SimpleSelector::PseudoClass::Visited; else if (pseudo_name.equals_ignoring_case("hover")) simple_selector.pseudo_class = Selector::SimpleSelector::PseudoClass::Hover; else if (pseudo_name.equals_ignoring_case("focus"))