diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 3082cd735c..b23473ff95 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -1934,8 +1934,10 @@ RefPtr Parser::convert_to_rule(NonnullRefPtr rule) auto media_query_tokens = TokenStream { rule->prelude() }; auto media_query_list = parse_a_media_query_list(media_query_tokens); + if (media_query_list.is_empty() || !rule->block()) + return {}; - auto child_tokens = TokenStream { rule->block().values() }; + auto child_tokens = TokenStream { rule->block()->values() }; auto parser_rules = consume_a_list_of_rules(child_tokens, false); NonnullRefPtrVector child_rules; for (auto& raw_rule : parser_rules) { @@ -1980,7 +1982,9 @@ RefPtr Parser::convert_to_rule(NonnullRefPtr rule) return {}; } - auto child_tokens = TokenStream { rule->block().values() }; + if (!rule->block()) + return {}; + auto child_tokens = TokenStream { rule->block()->values() }; auto parser_rules = consume_a_list_of_rules(child_tokens, false); NonnullRefPtrVector child_rules; for (auto& raw_rule : parser_rules) { diff --git a/Userland/Libraries/LibWeb/CSS/Parser/StyleRule.h b/Userland/Libraries/LibWeb/CSS/Parser/StyleRule.h index 267bfc80df..2a95bd8423 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/StyleRule.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/StyleRule.h @@ -27,7 +27,7 @@ public: ~StyleRule(); Vector const& prelude() const { return m_prelude; } - StyleBlockRule const& block() const { return *m_block; } + RefPtr const block() const { return m_block; } String to_string() const;