LibWeb: Add absolutized method to CounterDefinitionsStyleValue

This avoids a crash when a counter value relies on relative units
This commit is contained in:
Callum Law 2025-09-30 03:19:49 +13:00 committed by Sam Atkins
commit 2c7b56511b
Notes: github-actions[bot] 2025-10-07 09:51:49 +00:00
3 changed files with 36 additions and 0 deletions

View file

@ -29,6 +29,26 @@ String CounterDefinitionsStyleValue::to_string(SerializationMode mode) const
return stb.to_string_without_validation();
}
ValueComparingNonnullRefPtr<StyleValue const> CounterDefinitionsStyleValue::absolutized(ComputationContext const& computation_context) const
{
Vector<CounterDefinition> computed_definitions;
for (auto specified_definition : m_counter_definitions) {
CounterDefinition computed_definition {
.name = specified_definition.name,
.is_reversed = specified_definition.is_reversed,
.value = nullptr
};
if (specified_definition.value)
computed_definition.value = specified_definition.value->absolutized(computation_context);
computed_definitions.append(computed_definition);
}
return CounterDefinitionsStyleValue::create(computed_definitions);
}
bool CounterDefinitionsStyleValue::properties_equal(CounterDefinitionsStyleValue const& other) const
{
if (m_counter_definitions.size() != other.counter_definitions().size())