aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/style/element_state.rs8
-rw-r--r--components/style/gecko/non_ts_pseudo_class_list.rs5
-rw-r--r--components/style/gecko/wrapper.rs7
3 files changed, 18 insertions, 2 deletions
diff --git a/components/style/element_state.rs b/components/style/element_state.rs
index 3bfa55242ad..c5e11ba1848 100644
--- a/components/style/element_state.rs
+++ b/components/style/element_state.rs
@@ -37,7 +37,13 @@ bitflags! {
const IN_TARGET_STATE = 0x100,
#[doc = "https://fullscreen.spec.whatwg.org/#%3Afullscreen-pseudo-class"]
const IN_FULLSCREEN_STATE = 0x200,
+ #[doc = "https://html.spec.whatwg.org/multipage/#selector-valid"]
+ const IN_VALID_STATE = 0x400,
+ #[doc = "https://html.spec.whatwg.org/multipage/#selector-invalid"]
+ const IN_INVALID_STATE = 0x800,
+ #[doc = "Non-standard: https://developer.mozilla.org/en-US/docs/Web/CSS/:-moz-ui-valid"]
+ const IN_MOZ_UI_VALID_STATE = 0x1000,
#[doc = "https://html.spec.whatwg.org/multipage/#selector-read-write"]
- const IN_READ_WRITE_STATE = 0x400,
+ const IN_READ_WRITE_STATE = 0x2000,
}
}
diff --git a/components/style/gecko/non_ts_pseudo_class_list.rs b/components/style/gecko/non_ts_pseudo_class_list.rs
index 0fc580cdc08..6f70feca239 100644
--- a/components/style/gecko/non_ts_pseudo_class_list.rs
+++ b/components/style/gecko/non_ts_pseudo_class_list.rs
@@ -44,6 +44,11 @@ macro_rules! apply_non_ts_list {
("disabled", Disabled, disabled, IN_DISABLED_STATE, _),
("checked", Checked, checked, IN_CHECKED_STATE, _),
("indeterminate", Indeterminate, indeterminate, IN_INDETERMINATE_STATE, _),
+ ("placeholder-shown", PlaceholderShown, placeholderShown, IN_PLACEHOLDER_SHOWN_STATE, _),
+ ("target", Target, target, IN_TARGET_STATE, _),
+ ("valid", Valid, valid, IN_VALID_STATE, _),
+ ("invalid", Invalid, invalid, IN_INVALID_STATE, _),
+ ("-moz-ui-valid", MozUIValid, mozUIValid, IN_MOZ_UI_VALID_STATE, _),
("read-write", ReadWrite, _, IN_READ_WRITE_STATE, _),
("read-only", ReadOnly, _, IN_READ_WRITE_STATE, _),
diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs
index 2c1f07b28b1..76974f0d2f7 100644
--- a/components/style/gecko/wrapper.rs
+++ b/components/style/gecko/wrapper.rs
@@ -651,7 +651,12 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::Checked |
NonTSPseudoClass::ReadWrite |
NonTSPseudoClass::Fullscreen |
- NonTSPseudoClass::Indeterminate => {
+ NonTSPseudoClass::Indeterminate |
+ NonTSPseudoClass::PlaceholderShown |
+ NonTSPseudoClass::Target |
+ NonTSPseudoClass::Valid |
+ NonTSPseudoClass::Invalid |
+ NonTSPseudoClass::MozUIValid => {
self.get_state().contains(pseudo_class.state_flag())
},
NonTSPseudoClass::ReadOnly => {