mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
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>
This commit is contained in:
parent
ad45fa0a19
commit
7582afebec
10 changed files with 58 additions and 68 deletions
28
Cargo.lock
generated
28
Cargo.lock
generated
|
@ -1294,7 +1294,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "derive_common"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"proc-macro2",
|
||||
|
@ -1483,7 +1483,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "dom"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
]
|
||||
|
@ -4090,7 +4090,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "malloc_size_of"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"accountable-refcell",
|
||||
"app_units",
|
||||
|
@ -5778,7 +5778,7 @@ checksum = "0495e4577c672de8254beb68d01a9b62d0e8a13c099edecdbedccce3223cd29f"
|
|||
[[package]]
|
||||
name = "selectors"
|
||||
version = "0.24.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"cssparser",
|
||||
|
@ -6092,7 +6092,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo_arc"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"stable_deref_trait",
|
||||
|
@ -6101,7 +6101,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo_atoms"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"string_cache",
|
||||
"string_cache_codegen",
|
||||
|
@ -6303,7 +6303,7 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
|
|||
[[package]]
|
||||
name = "size_of_test"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"static_assertions",
|
||||
]
|
||||
|
@ -6444,7 +6444,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|||
[[package]]
|
||||
name = "static_prefs"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
|
||||
[[package]]
|
||||
name = "strck"
|
||||
|
@ -6497,7 +6497,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "style"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"app_units",
|
||||
"arrayvec",
|
||||
|
@ -6556,7 +6556,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "style_config"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
]
|
||||
|
@ -6564,7 +6564,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "style_derive"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"derive_common",
|
||||
|
@ -6595,7 +6595,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "style_traits"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"app_units",
|
||||
"bitflags 2.6.0",
|
||||
|
@ -6944,7 +6944,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "to_shmem"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"cssparser",
|
||||
"servo_arc",
|
||||
|
@ -6957,7 +6957,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "to_shmem_derive"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#c3a84ea8c97b0af542fbb47eee8f6f182b357128"
|
||||
source = "git+https://github.com/servo/stylo?branch=2024-07-16#3359447b53f0d0bc4affe135313ca8d0e48cb876"
|
||||
dependencies = [
|
||||
"darling",
|
||||
"derive_common",
|
||||
|
|
|
@ -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()),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -567,22 +567,34 @@ impl<'dom> ::selectors::Element for ServoLayoutElement<'dom> {
|
|||
NonTSPseudoClass::ReadOnly => !self
|
||||
.element
|
||||
.get_state_for_layout()
|
||||
.contains(pseudo_class.state_flag()),
|
||||
.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 => self
|
||||
NonTSPseudoClass::PopoverOpen |
|
||||
NonTSPseudoClass::ReadWrite |
|
||||
NonTSPseudoClass::Required |
|
||||
NonTSPseudoClass::Target |
|
||||
NonTSPseudoClass::UserInvalid |
|
||||
NonTSPseudoClass::UserValid |
|
||||
NonTSPseudoClass::Valid => self
|
||||
.element
|
||||
.get_state_for_layout()
|
||||
.contains(pseudo_class.state_flag()),
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
[focus-visible-017-2.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[By default initial programatic focus matches ':focus-visible', so the element ABBR shows a focus ring with 'outline-style: auto']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
[focus-visible-017.html]
|
||||
[By default initial programatic focus matches ':focus-visible', so the element shows a focus ring with 'outline-style: auto']
|
||||
expected: FAIL
|
||||
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[focus-visible-023.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[:focus-visible stop matching after blur]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
[focus-visible-script-focus-001.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[Script focus without any previous user interaction matches :focus-visible]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
[focus-within-009.html]
|
||||
[Initial State]
|
||||
expected: FAIL
|
||||
|
||||
[Focus 'target1']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -17,9 +14,6 @@
|
|||
[Focus 'target1' once again]
|
||||
expected: FAIL
|
||||
|
||||
[Detach 'container1' from the document]
|
||||
expected: FAIL
|
||||
|
||||
[Try to focus 'target1']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -31,6 +25,3 @@
|
|||
|
||||
[Focus 'target1' for the last time]
|
||||
expected: FAIL
|
||||
|
||||
[Move 'target1' in 'container2']
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
[parse-focus-visible.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["a:focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[":focus:not(:focus-visible)" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
|
@ -1,7 +1,3 @@
|
|||
[autofill.html]
|
||||
[":autofill" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[":-webkit-autofill" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue