LibWeb: Don't allow "display: none" start CSS animations

This is both a correctness fix and a performance optimization.
This commit is contained in:
Aliaksandr Kalenik
2025-01-31 22:26:59 +01:00
committed by Alexander Kalenik
parent 93f9ed72d2
commit 0cfe90b59e
6 changed files with 116 additions and 7 deletions

View File

@@ -2502,8 +2502,10 @@ GC::Ref<ComputedProperties> StyleComputer::compute_properties(DOM::Element& elem
effect->set_target(&element);
element.set_cached_animation_name_animation(animation, pseudo_element);
HTML::TemporaryExecutionContext context(realm);
animation->play().release_value_but_fixme_should_propagate_errors();
if (!element.has_display_none_ancestor()) {
HTML::TemporaryExecutionContext context(realm);
animation->play().release_value_but_fixme_should_propagate_errors();
}
} else {
// The animation hasn't changed, but some properties of the animation may have
if (auto animation = element.cached_animation_name_animation(pseudo_element); animation)