mirror of
https://github.com/servo/servo.git
synced 2025-08-26 23:58:20 +01:00
Auto merge of #10834 - yoava333:master, r=SimonSapin
added support for :read-only and :read-write pseudo-classes partial fix for https://github.com/servo/servo/issues/10732 It's not a full fix because: 1. there's a bug in wpt-test https://github.com/w3c/web-platform-tests/issues/2889#issuecomment-214144420 2. we don't fully support all input types (namely image, color, hidden and range), which are defaulted to input text. this means that :read-write which is applicable to input text is mis-handled in those cases. 3. we don't support contenteditable, which is also possibly :read-write <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10834) <!-- Reviewable:end -->
This commit is contained in:
commit
ac8406f4ae
9 changed files with 82 additions and 31 deletions
|
@ -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(())
|
||||
};
|
||||
|
||||
|
|
|
@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue