From 5857f24bc8dba4e3decf017bea9a9040f3570081 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 29 May 2023 05:49:06 +0200 Subject: LibWeb: Only update style for the element being animated by CSS Unlike DOM mutations, CSS animations don't affect the style of the entire subtree of the element being animated. This means we only have to recompute style for the animating element, which is significantly faster than doing the whole subtree. This takes idle CPU usage on https://shopify.com/ from 100% to 30% on my (not massively powerful) laptop. :^) --- Userland/Libraries/LibWeb/CSS/StyleComputer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index cb175090ec..a4ee6234d0 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -1325,7 +1325,7 @@ void StyleComputer::ensure_animation_timer() const m_active_animations.remove(key); for (auto* element : owning_elements_to_invalidate) - element->invalidate_style(); + element->set_needs_style_update(true); }); } -- cgit v1.2.3