mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:58:12 +00:00
LibWeb: Parse and match the :visited pseudo-class (always fails)
If we don't do this, something like "a:visited" is parsed as "a" which may then take precedence over a previous "a:link" etc.
This commit is contained in:
parent
62893a54cc
commit
483b371a7b
3 changed files with 6 additions and 0 deletions
|
@ -47,6 +47,7 @@ public:
|
|||
enum class PseudoClass {
|
||||
None,
|
||||
Link,
|
||||
Visited,
|
||||
Hover,
|
||||
Focus,
|
||||
FirstChild,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue