diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/cssom.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/cssom.txt index 84299b8c6e1..d18a98339e2 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/cssom.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/cssom.txt @@ -6,7 +6,8 @@ Rerun Found 13 tests -13 Fail +1 Pass +12 Fail Details Result Test Name MessageFail CSSStyleRule is a CSSGroupingRule Fail Simple CSSOM manipulation of subrules @@ -20,4 +21,4 @@ Fail Simple CSSOM manipulation of subrules 7 Fail Simple CSSOM manipulation of subrules 8 Fail Simple CSSOM manipulation of subrules 9 Fail Simple CSSOM manipulation of subrules 10 -Fail Mutating the selectorText of outer rule invalidates inner rules \ No newline at end of file +Pass Mutating the selectorText of outer rule invalidates inner rules \ No newline at end of file diff --git a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.cpp b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.cpp index 2db642ac56a..1a8ad358753 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.cpp +++ b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.cpp @@ -34,6 +34,13 @@ void CSSGroupingRule::visit_edges(Cell::Visitor& visitor) visitor.visit(m_rules); } +void CSSGroupingRule::clear_caches() +{ + Base::clear_caches(); + for (auto& rule : *m_rules) + rule->clear_caches(); +} + WebIDL::ExceptionOr CSSGroupingRule::insert_rule(StringView rule, u32 index) { TRY(m_rules->insert_a_css_rule(rule, index)); diff --git a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h index 5a00014733d..20dcc9987ba 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h +++ b/Userland/Libraries/LibWeb/CSS/CSSGroupingRule.h @@ -35,6 +35,7 @@ protected: virtual void initialize(JS::Realm&) override; virtual void visit_edges(Cell::Visitor&) override; + virtual void clear_caches() override; private: JS::NonnullGCPtr m_rules; diff --git a/Userland/Libraries/LibWeb/CSS/CSSRule.h b/Userland/Libraries/LibWeb/CSS/CSSRule.h index 15a491037af..caded862ba9 100644 --- a/Userland/Libraries/LibWeb/CSS/CSSRule.h +++ b/Userland/Libraries/LibWeb/CSS/CSSRule.h @@ -58,13 +58,13 @@ public: // https://drafts.csswg.org/cssom-1/#serialize-a-css-rule virtual String serialized() const = 0; + virtual void clear_caches(); + protected: explicit CSSRule(JS::Realm&, Type); virtual void visit_edges(Cell::Visitor&) override; - virtual void clear_caches(); - [[nodiscard]] FlyString const& parent_layer_internal_qualified_name() const { if (!m_cached_layer_name.has_value())