diff --git a/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Libraries/LibWeb/CSS/Parser/Parser.cpp index 8dcfc1e49c3..c277f906592 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -1427,14 +1427,18 @@ bool Parser::is_valid_in_the_current_context(AtRule const& at_rule) const if (m_rule_context.is_empty()) return true; + // Only grouping rules can be nested within style rules + if (m_rule_context.contains_slow(ContextType::Style)) + return first_is_one_of(at_rule.name, "layer", "media", "supports"); + switch (m_rule_context.last()) { case ContextType::Unknown: // If the context is an unknown type, we don't accept anything. return false; case ContextType::Style: - // Style rules can contain grouping rules - return first_is_one_of(at_rule.name, "layer", "media", "supports"); + // Already handled above + VERIFY_NOT_REACHED(); case ContextType::AtLayer: case ContextType::AtMedia: diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt index c4e8cede63a..083010be2af 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-nesting/invalid-inner-rules.txt @@ -2,6 +2,7 @@ Harness status: OK Found 2 tests -2 Fail -Fail Simple CSSOM manipulation of subrules +1 Pass +1 Fail +Pass Simple CSSOM manipulation of subrules Fail Simple CSSOM manipulation of subrules 1 \ No newline at end of file