diff --git a/components/style/gecko/non_ts_pseudo_class_list.rs b/components/style/gecko/non_ts_pseudo_class_list.rs index f6551ce90d4..524ecb2e655 100644 --- a/components/style/gecko/non_ts_pseudo_class_list.rs +++ b/components/style/gecko/non_ts_pseudo_class_list.rs @@ -107,6 +107,7 @@ macro_rules! apply_non_ts_list { ("-moz-only-whitespace", MozOnlyWhitespace, mozOnlyWhitespace, _, _), ("-moz-native-anonymous", MozNativeAnonymous, mozNativeAnonymous, _, PSEUDO_CLASS_INTERNAL), ("-moz-is-html", MozIsHTML, mozIsHTML, _, _), + ("-moz-placeholder", MozPlaceholder, mozPlaceholder, _, _), ], string: [ ("-moz-system-metric", MozSystemMetric, mozSystemMetric, _, PSEUDO_CLASS_INTERNAL), diff --git a/components/style/gecko/selector_parser.rs b/components/style/gecko/selector_parser.rs index 787ecd5b2cb..30242dc9bcb 100644 --- a/components/style/gecko/selector_parser.rs +++ b/components/style/gecko/selector_parser.rs @@ -166,7 +166,8 @@ impl NonTSPseudoClass { !matches!(*self, NonTSPseudoClass::MozAny(_) | NonTSPseudoClass::Dir(_) | - NonTSPseudoClass::MozIsHTML) + NonTSPseudoClass::MozIsHTML | + NonTSPseudoClass::MozPlaceholder) } /// Convert NonTSPseudoClass to Gecko's CSSPseudoClassType. diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs index e043ff57223..3732ea40051 100644 --- a/components/style/gecko/wrapper.rs +++ b/components/style/gecko/wrapper.rs @@ -1335,6 +1335,7 @@ impl<'le> ::selectors::Element for GeckoElement<'le> { NonTSPseudoClass::MozIsHTML => { self.is_html_element_in_html_document() } + NonTSPseudoClass::MozPlaceholder => false, NonTSPseudoClass::MozAny(ref sels) => { sels.iter().any(|s| { matches_complex_selector(s, self, context, flags_setter)