diff options
author | Martin Robinson <mrobinson@igalia.com> | 2024-08-24 01:43:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-24 08:43:54 +0000 |
commit | 7582afebeca965f8d12a6594284969ee55f6742f (patch) | |
tree | c644387dfa317797c060b4d0efe9989f07ea4394 /components/script/dom/element.rs | |
parent | ad45fa0a196a5d8f9655c41afc6b5b42570f5340 (diff) | |
download | servo-7582afebeca965f8d12a6594284969ee55f6742f.tar.gz servo-7582afebeca965f8d12a6594284969ee55f6742f.zip |
script: Update list of non-TS pseudo classes supported by Servo (#33165)
Also remove some code duplication by moving some of the code into the
`Element` impl.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index c3c1d4edf08..32a4b5c16ac 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -3695,22 +3695,36 @@ impl SelectorsElement for DomRoot<Element> { // storing separate <ident> or <string>s for each language tag. NonTSPseudoClass::Lang(ref lang) => extended_filtering(&self.get_lang(), lang), - NonTSPseudoClass::ReadOnly => !Element::state(self).contains(pseudo_class.state_flag()), + NonTSPseudoClass::ReadOnly => { + !Element::state(self).contains(NonTSPseudoClass::ReadWrite.state_flag()) + }, NonTSPseudoClass::Active | + NonTSPseudoClass::Autofill | + NonTSPseudoClass::Checked | + NonTSPseudoClass::Default | + NonTSPseudoClass::Defined | + NonTSPseudoClass::Disabled | + NonTSPseudoClass::Enabled | NonTSPseudoClass::Focus | + NonTSPseudoClass::FocusVisible | + NonTSPseudoClass::FocusWithin | NonTSPseudoClass::Fullscreen | NonTSPseudoClass::Hover | - NonTSPseudoClass::Defined | - NonTSPseudoClass::Enabled | - NonTSPseudoClass::Disabled | - NonTSPseudoClass::Checked | - NonTSPseudoClass::Valid | - NonTSPseudoClass::Invalid | + NonTSPseudoClass::InRange | NonTSPseudoClass::Indeterminate | - NonTSPseudoClass::ReadWrite | + NonTSPseudoClass::Invalid | + NonTSPseudoClass::Modal | + NonTSPseudoClass::Optional | + NonTSPseudoClass::OutOfRange | NonTSPseudoClass::PlaceholderShown | - NonTSPseudoClass::Target => Element::state(self).contains(pseudo_class.state_flag()), + NonTSPseudoClass::PopoverOpen | + NonTSPseudoClass::ReadWrite | + NonTSPseudoClass::Required | + NonTSPseudoClass::Target | + NonTSPseudoClass::UserInvalid | + NonTSPseudoClass::UserValid | + NonTSPseudoClass::Valid => Element::state(self).contains(pseudo_class.state_flag()), } } |