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
commit 0cfe90b59e
Notes: github-actions[bot] 2025-02-01 12:42:56 +00:00
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)