mirror of
https://github.com/servo/servo.git
synced 2025-08-24 06:45:33 +01:00
style: Cleanup selector-matching for nested pseudo-elements, match ::slotted correctly when there's no selector before it, and add tests.
D29542 fixed the bogus checks that was making nested pseudo-elements match author rules. This adds tests and ends up being just a cleanup, though as it turns out we it also fixes an issue with ::slotted() matched from Element.matches. Differential Revision: https://phabricator.services.mozilla.com/D27529
This commit is contained in:
parent
272d9758d7
commit
43444db8a8
9 changed files with 35 additions and 38 deletions
|
@ -233,7 +233,7 @@ where
|
|||
|
||||
let mut pseudo_styles = EagerPseudoStyles::default();
|
||||
|
||||
if self.element.implemented_pseudo_element().is_none() {
|
||||
if !self.element.is_pseudo_element() {
|
||||
let layout_parent_style_for_pseudo = if primary_style.style().is_display_contents() {
|
||||
layout_parent_style
|
||||
} else {
|
||||
|
@ -293,10 +293,6 @@ where
|
|||
layout_parent_style: Option<&ComputedValues>,
|
||||
pseudo: Option<&PseudoElement>,
|
||||
) -> ResolvedStyle {
|
||||
debug_assert!(
|
||||
self.element.implemented_pseudo_element().is_none() || pseudo.is_none(),
|
||||
"Pseudo-elements can't have other pseudos!"
|
||||
);
|
||||
debug_assert!(pseudo.map_or(true, |p| p.is_eager()));
|
||||
|
||||
let implemented_pseudo = self.element.implemented_pseudo_element();
|
||||
|
@ -477,8 +473,8 @@ where
|
|||
);
|
||||
debug_assert!(pseudo_element.is_eager());
|
||||
debug_assert!(
|
||||
self.element.implemented_pseudo_element().is_none(),
|
||||
"Element pseudos can't have any other pseudo."
|
||||
!self.element.is_pseudo_element(),
|
||||
"Element pseudos can't have any other eager pseudo."
|
||||
);
|
||||
|
||||
let mut applicable_declarations = ApplicableDeclarationList::new();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue