From e6bb0ab00016603b200076a494f4df8c79de6c8f Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Tue, 9 Sep 2025 14:58:35 +0100 Subject: [PATCH] LibWeb/CSS: Take AbstractElement in compute_transitioned_properties() --- Libraries/LibWeb/CSS/StyleComputer.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Libraries/LibWeb/CSS/StyleComputer.cpp b/Libraries/LibWeb/CSS/StyleComputer.cpp index 8cae1516138..b69f641cfe8 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -1215,13 +1215,16 @@ static void apply_dimension_attribute(CascadedProperties& cascaded_properties, D cascaded_properties.set_property_from_presentational_hint(property_id, parsed_value.release_nonnull()); } -static void compute_transitioned_properties(ComputedProperties const& style, DOM::Element& element, Optional pseudo_element) +static void compute_transitioned_properties(ComputedProperties const& style, DOM::AbstractElement abstract_element) { auto const source_declaration = style.transition_property_source(); if (!source_declaration) return; - if (!element.computed_properties()) + if (!abstract_element.computed_properties()) return; + // FIXME: Add transition helpers on AbstractElement. + auto& element = abstract_element.element(); + auto pseudo_element = abstract_element.pseudo_element(); if (source_declaration == element.cached_transition_property_source(pseudo_element)) return; // Reparse this transition property @@ -2647,7 +2650,7 @@ GC::Ref StyleComputer::compute_properties(DOM::AbstractEleme // 8. Transition declarations [css-transitions-1] // Theoretically this should be part of the cascade, but it works with computed values, which we don't have until now. - compute_transitioned_properties(computed_style, abstract_element.element(), abstract_element.pseudo_element()); + compute_transitioned_properties(computed_style, abstract_element); if (auto previous_style = abstract_element.computed_properties()) { start_needed_transitions(*previous_style, computed_style, abstract_element); }