diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp index c5fb5df6c3a..a6e9b61aeb6 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.cpp @@ -14,12 +14,12 @@ namespace Web::CSS { JS_DEFINE_ALLOCATOR(CSSStyleRule); -JS::NonnullGCPtr CSSStyleRule::create(JS::Realm& realm, Vector>&& selectors, CSSStyleDeclaration& declaration) +JS::NonnullGCPtr CSSStyleRule::create(JS::Realm& realm, Vector>&& selectors, PropertyOwningCSSStyleDeclaration& declaration) { return realm.heap().allocate(realm, realm, move(selectors), declaration); } -CSSStyleRule::CSSStyleRule(JS::Realm& realm, Vector>&& selectors, CSSStyleDeclaration& declaration) +CSSStyleRule::CSSStyleRule(JS::Realm& realm, Vector>&& selectors, PropertyOwningCSSStyleDeclaration& declaration) : CSSRule(realm) , m_selectors(move(selectors)) , m_declaration(declaration) diff --git a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h index dd604454cec..ab46be00a52 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h +++ b/Userland/Libraries/LibWeb/CSS/CSSStyleRule.h @@ -19,12 +19,12 @@ class CSSStyleRule final : public CSSRule { JS_DECLARE_ALLOCATOR(CSSStyleRule); public: - [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm&, Vector>&&, CSSStyleDeclaration&); + [[nodiscard]] static JS::NonnullGCPtr create(JS::Realm&, Vector>&&, PropertyOwningCSSStyleDeclaration&); virtual ~CSSStyleRule() override = default; Vector> const& selectors() const { return m_selectors; } - CSSStyleDeclaration const& declaration() const { return m_declaration; } + PropertyOwningCSSStyleDeclaration const& declaration() const { return m_declaration; } virtual Type type() const override { return Type::Style; } @@ -34,14 +34,14 @@ public: CSSStyleDeclaration* style(); private: - CSSStyleRule(JS::Realm&, Vector>&&, CSSStyleDeclaration&); + CSSStyleRule(JS::Realm&, Vector>&&, PropertyOwningCSSStyleDeclaration&); virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; virtual String serialized() const override; Vector> m_selectors; - JS::NonnullGCPtr m_declaration; + JS::NonnullGCPtr m_declaration; }; template<> diff --git a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp index 2fcb67ee11d..0fab61e542c 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -730,7 +730,7 @@ void StyleComputer::cascade_declarations(StyleProperties& style, DOM::Element& e auto properties_for_revert = style.properties(); for (auto const& match : matching_rules) { - for (auto const& property : verify_cast(match.rule->declaration()).properties()) { + for (auto const& property : match.rule->declaration().properties()) { if (important != property.important) continue; @@ -772,7 +772,7 @@ static void cascade_custom_properties(DOM::Element& element, Optional(matching_rule.rule->declaration()).custom_properties().size(); + needed_capacity += matching_rule.rule->declaration().custom_properties().size(); if (!pseudo_element.has_value()) { if (auto const inline_style = element.inline_style()) @@ -783,7 +783,7 @@ static void cascade_custom_properties(DOM::Element& element, Optional(matching_rule.rule->declaration()).custom_properties()) + for (auto const& it : matching_rule.rule->declaration().custom_properties()) custom_properties.set(it.key, it.value); } diff --git a/Userland/Libraries/LibWeb/Dump.cpp b/Userland/Libraries/LibWeb/Dump.cpp index bfa0ec5834d..8378b9ea77b 100644 --- a/Userland/Libraries/LibWeb/Dump.cpp +++ b/Userland/Libraries/LibWeb/Dump.cpp @@ -694,15 +694,14 @@ ErrorOr dump_style_rule(StringBuilder& builder, CSS::CSSStyleRule const& r } indent(builder, indent_levels); builder.append(" Declarations:\n"sv); - auto& style_declaration = verify_cast(rule.declaration()); - for (auto& property : style_declaration.properties()) { + for (auto& property : rule.declaration().properties()) { indent(builder, indent_levels); builder.appendff(" {}: '{}'", CSS::string_from_property_id(property.property_id), property.value->to_string()); if (property.important == CSS::Important::Yes) builder.append(" \033[31;1m!important\033[0m"sv); builder.append('\n'); } - for (auto& property : style_declaration.custom_properties()) { + for (auto& property : rule.declaration().custom_properties()) { indent(builder, indent_levels); builder.appendff(" {}: '{}'", property.key, property.value.value->to_string()); if (property.value.important == CSS::Important::Yes)