mirror of
https://github.com/servo/servo.git
synced 2025-09-30 00:29:14 +01:00
layout: Support storing layout data for two-level nested pseudo-elements (#38678)
Add basic support for storing layout data for pseudo-elements nested to up to two levels. This removes the last unstored layout result and fixes a double-borrow issue. This change does not add properly parsing nor styling of these element types, but does prepare for those changes which must come from stylo. Testing: This fixes a intermittent panic in `tests/wpt/tests/css/css-lists/nested-marker-styling.html` Fixes: #38177. Closes: #38183. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
43da933247
commit
99ce81cf64
10 changed files with 273 additions and 177 deletions
|
@ -71,8 +71,15 @@ impl FragmentTree {
|
|||
|
||||
fragment_tree.find(|fragment, _level, containing_block| {
|
||||
if let Some(tag) = fragment.tag() {
|
||||
invalid_animating_nodes.remove(&AnimationSetKey::new(tag.node, tag.pseudo));
|
||||
invalid_image_animating_nodes.remove(&AnimationSetKey::new(tag.node, tag.pseudo));
|
||||
// TODO: Support animations on nested pseudo-elements.
|
||||
invalid_animating_nodes.remove(&AnimationSetKey::new(
|
||||
tag.node,
|
||||
tag.pseudo_element_chain.primary,
|
||||
));
|
||||
invalid_image_animating_nodes.remove(&AnimationSetKey::new(
|
||||
tag.node,
|
||||
tag.pseudo_element_chain.primary,
|
||||
));
|
||||
}
|
||||
|
||||
fragment.set_containing_block(containing_block);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue