style: Implement :user-valid and :user-invalid.

And alias :-moz-ui-valid and :-moz-ui-invalid to them.

There are CSSWG resolutions for these for quite a while, and spec for
user-invalid.

Differential Revision: https://phabricator.services.mozilla.com/D105966
This commit is contained in:
Emilio Cobos Álvarez 2021-02-24 01:11:40 +00:00
parent 786b08a669
commit 35b080e021
3 changed files with 6 additions and 4 deletions

View file

@ -77,8 +77,8 @@ macro_rules! apply_non_ts_list {
("read-only", ReadOnly, IN_READONLY_STATE, _), ("read-only", ReadOnly, IN_READONLY_STATE, _),
("read-write", ReadWrite, IN_READWRITE_STATE, _), ("read-write", ReadWrite, IN_READWRITE_STATE, _),
("-moz-submit-invalid", MozSubmitInvalid, IN_MOZ_SUBMITINVALID_STATE, _), ("-moz-submit-invalid", MozSubmitInvalid, IN_MOZ_SUBMITINVALID_STATE, _),
("-moz-ui-valid", MozUIValid, IN_MOZ_UI_VALID_STATE, _), ("user-valid", UserValid, IN_MOZ_UI_VALID_STATE, _),
("-moz-ui-invalid", MozUIInvalid, IN_MOZ_UI_INVALID_STATE, _), ("user-invalid", UserInvalid, IN_MOZ_UI_INVALID_STATE, _),
("-moz-meter-optimum", MozMeterOptimum, IN_OPTIMUM_STATE, _), ("-moz-meter-optimum", MozMeterOptimum, IN_OPTIMUM_STATE, _),
("-moz-meter-sub-optimum", MozMeterSubOptimum, IN_SUB_OPTIMUM_STATE, _), ("-moz-meter-sub-optimum", MozMeterSubOptimum, IN_SUB_OPTIMUM_STATE, _),
("-moz-meter-sub-sub-optimum", MozMeterSubSubOptimum, IN_SUB_SUB_OPTIMUM_STATE, _), ("-moz-meter-sub-sub-optimum", MozMeterSubSubOptimum, IN_SUB_SUB_OPTIMUM_STATE, _),

View file

@ -103,6 +103,8 @@ impl NonTSPseudoClass {
"-moz-read-only" => Some(NonTSPseudoClass::ReadOnly), "-moz-read-only" => Some(NonTSPseudoClass::ReadOnly),
"-moz-read-write" => Some(NonTSPseudoClass::ReadWrite), "-moz-read-write" => Some(NonTSPseudoClass::ReadWrite),
"-moz-focusring" => Some(NonTSPseudoClass::FocusVisible), "-moz-focusring" => Some(NonTSPseudoClass::FocusVisible),
"-moz-ui-valid" => Some(NonTSPseudoClass::UserValid),
"-moz-ui-invalid" => Some(NonTSPseudoClass::UserInvalid),
"-webkit-autofill" => Some(NonTSPseudoClass::Autofill), "-webkit-autofill" => Some(NonTSPseudoClass::Autofill),
_ => None, _ => None,
} }

View file

@ -2030,7 +2030,6 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::Target | NonTSPseudoClass::Target |
NonTSPseudoClass::Valid | NonTSPseudoClass::Valid |
NonTSPseudoClass::Invalid | NonTSPseudoClass::Invalid |
NonTSPseudoClass::MozUIValid |
NonTSPseudoClass::MozBroken | NonTSPseudoClass::MozBroken |
NonTSPseudoClass::MozLoading | NonTSPseudoClass::MozLoading |
NonTSPseudoClass::Required | NonTSPseudoClass::Required |
@ -2047,7 +2046,8 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
NonTSPseudoClass::OutOfRange | NonTSPseudoClass::OutOfRange |
NonTSPseudoClass::Default | NonTSPseudoClass::Default |
NonTSPseudoClass::MozSubmitInvalid | NonTSPseudoClass::MozSubmitInvalid |
NonTSPseudoClass::MozUIInvalid | NonTSPseudoClass::UserValid |
NonTSPseudoClass::UserInvalid |
NonTSPseudoClass::MozMeterOptimum | NonTSPseudoClass::MozMeterOptimum |
NonTSPseudoClass::MozMeterSubOptimum | NonTSPseudoClass::MozMeterSubOptimum |
NonTSPseudoClass::MozMeterSubSubOptimum | NonTSPseudoClass::MozMeterSubSubOptimum |