style: Support matching :-moz-browser-frame and :-moz-table-border-nonzero against snapshots.

This commit is contained in:
Cameron McCormack 2017-06-05 15:07:36 +08:00
parent 90b3691f82
commit 17e5c19d70
4 changed files with 42 additions and 2 deletions

View file

@ -206,6 +206,14 @@ impl NonTSPseudoClass {
}
apply_non_ts_list!(pseudo_class_geckotype)
}
/// Returns true if the evaluation of the pseudo-class depends on the
/// element's attributes.
pub fn is_attr_based(&self) -> bool {
matches!(*self,
NonTSPseudoClass::MozTableBorderNonzero |
NonTSPseudoClass::MozBrowserFrame)
}
}
/// The dummy struct we use to implement our selector parsing.

View file

@ -55,6 +55,13 @@ impl GeckoElementSnapshot {
self
}
/// Returns true if the snapshot has stored state for pseudo-classes
/// that depend on things other than `ElementState`.
#[inline]
pub fn has_other_pseudo_class_state(&self) -> bool {
self.has_any(Flags::OtherPseudoClassState)
}
/// selectors::Element::attr_matches
pub fn attr_matches(&self,
ns: &NamespaceConstraint<&Namespace>,