added support for :read-only and :read-write pseudo-classes

partial fix for https://github.com/servo/servo/issues/10732
This commit is contained in:
Yoav Alon 2016-04-25 18:55:31 +03:00
parent f773dc182b
commit 9bf909ac2f
9 changed files with 82 additions and 31 deletions

View file

@ -101,6 +101,8 @@ pub enum NonTSPseudoClass {
Disabled,
Checked,
Indeterminate,
ReadWrite,
ReadOnly,
}
impl NonTSPseudoClass {
@ -115,6 +117,7 @@ impl NonTSPseudoClass {
Disabled => IN_DISABLED_STATE,
Checked => IN_CHECKED_STATE,
Indeterminate => IN_INDETERMINATE_STATE,
ReadOnly | ReadWrite => IN_READ_WRITE_STATE,
AnyLink |
Link |
@ -140,6 +143,8 @@ impl SelectorImpl for GeckoSelectorImpl {
"disabled" => Disabled,
"checked" => Checked,
"indeterminate" => Indeterminate,
"read-write" => ReadWrite,
"read-only" => ReadOnly,
_ => return Err(())
};

View file

@ -437,9 +437,13 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::Enabled |
NonTSPseudoClass::Disabled |
NonTSPseudoClass::Checked |
NonTSPseudoClass::ReadWrite |
NonTSPseudoClass::Indeterminate => {
self.get_state().contains(pseudo_class.state_flag())
},
NonTSPseudoClass::ReadOnly => {
!self.get_state().contains(pseudo_class.state_flag())
}
}
}