LibWeb/CSS: Take AbstractElement to compute alias mapping contexts

This commit is contained in:
Sam Atkins 2025-09-09 14:40:48 +01:00 committed by Alexander Kalenik
commit cdc4f7c989
Notes: github-actions[bot] 2025-09-11 16:47:20 +00:00
2 changed files with 5 additions and 5 deletions

View file

@ -2019,11 +2019,11 @@ void StyleComputer::compute_font(ComputedProperties& style, Optional<DOM::Abstra
} }
} }
LogicalAliasMappingContext StyleComputer::compute_logical_alias_mapping_context(DOM::Element& element, Optional<PseudoElement> pseudo_element, ComputeStyleMode mode, MatchingRuleSet const& matching_rule_set) const LogicalAliasMappingContext StyleComputer::compute_logical_alias_mapping_context(DOM::AbstractElement abstract_element, ComputeStyleMode mode, MatchingRuleSet const& matching_rule_set) const
{ {
auto normalize_value = [&](auto property_id, auto value) { auto normalize_value = [&](auto property_id, auto value) {
if (!value || value->is_inherit() || value->is_unset()) { if (!value || value->is_inherit() || value->is_unset()) {
if (auto const inheritance_parent = element.element_to_inherit_style_from(pseudo_element)) { if (auto const inheritance_parent = abstract_element.element_to_inherit_style_from(); inheritance_parent.has_value()) {
value = inheritance_parent->computed_properties()->property(property_id); value = inheritance_parent->computed_properties()->property(property_id);
} else { } else {
value = property_initial_value(property_id); value = property_initial_value(property_id);
@ -2043,7 +2043,7 @@ LogicalAliasMappingContext StyleComputer::compute_logical_alias_mapping_context(
PropertyID::Direction, PropertyID::Direction,
}; };
auto cascaded_properties = compute_cascaded_values( auto cascaded_properties = compute_cascaded_values(
{ element, pseudo_element }, abstract_element,
did_match_any_pseudo_element_rules, did_match_any_pseudo_element_rules,
mode, matching_rule_set, mode, matching_rule_set,
{}, {},
@ -2381,7 +2381,7 @@ GC::Ptr<ComputedProperties> StyleComputer::compute_style_impl(DOM::AbstractEleme
abstract_element.set_custom_properties(move(custom_properties)); abstract_element.set_custom_properties(move(custom_properties));
} }
auto logical_alias_mapping_context = compute_logical_alias_mapping_context(abstract_element.element(), abstract_element.pseudo_element(), mode, matching_rule_set); auto logical_alias_mapping_context = compute_logical_alias_mapping_context(abstract_element, mode, matching_rule_set);
auto cascaded_properties = compute_cascaded_values(abstract_element, did_match_any_pseudo_element_rules, mode, matching_rule_set, logical_alias_mapping_context, {}); auto cascaded_properties = compute_cascaded_values(abstract_element, did_match_any_pseudo_element_rules, mode, matching_rule_set, logical_alias_mapping_context, {});
abstract_element.set_cascaded_properties(cascaded_properties); abstract_element.set_cascaded_properties(cascaded_properties);

View file

@ -229,7 +229,7 @@ private:
[[nodiscard]] MatchingRuleSet build_matching_rule_set(DOM::AbstractElement, PseudoClassBitmap& attempted_pseudo_class_matches, bool& did_match_any_pseudo_element_rules, ComputeStyleMode) const; [[nodiscard]] MatchingRuleSet build_matching_rule_set(DOM::AbstractElement, PseudoClassBitmap& attempted_pseudo_class_matches, bool& did_match_any_pseudo_element_rules, ComputeStyleMode) const;
LogicalAliasMappingContext compute_logical_alias_mapping_context(DOM::Element&, Optional<CSS::PseudoElement>, ComputeStyleMode, MatchingRuleSet const&) const; LogicalAliasMappingContext compute_logical_alias_mapping_context(DOM::AbstractElement, ComputeStyleMode, MatchingRuleSet const&) const;
[[nodiscard]] GC::Ptr<ComputedProperties> compute_style_impl(DOM::AbstractElement, ComputeStyleMode, Optional<bool&> did_change_custom_properties) const; [[nodiscard]] GC::Ptr<ComputedProperties> compute_style_impl(DOM::AbstractElement, ComputeStyleMode, Optional<bool&> did_change_custom_properties) const;
[[nodiscard]] GC::Ref<CascadedProperties> compute_cascaded_values(DOM::AbstractElement, bool did_match_any_pseudo_element_rules, ComputeStyleMode, MatchingRuleSet const&, Optional<LogicalAliasMappingContext>, ReadonlySpan<PropertyID> properties_to_cascade) const; [[nodiscard]] GC::Ref<CascadedProperties> compute_cascaded_values(DOM::AbstractElement, bool did_match_any_pseudo_element_rules, ComputeStyleMode, MatchingRuleSet const&, Optional<LogicalAliasMappingContext>, ReadonlySpan<PropertyID> properties_to_cascade) const;
static RefPtr<Gfx::FontCascadeList const> find_matching_font_weight_ascending(Vector<MatchingFontCandidate> const& candidates, int target_weight, float font_size_in_pt, bool inclusive); static RefPtr<Gfx::FontCascadeList const> find_matching_font_weight_ascending(Vector<MatchingFontCandidate> const& candidates, int target_weight, float font_size_in_pt, bool inclusive);