diff --git a/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp b/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp index 579e83ad564..fcadb1a4864 100644 --- a/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp @@ -505,12 +505,7 @@ GC::Ptr Parser::convert_to_media_rule(AtRule const& rule, Nested n child_rules.append(child_rule); }, [&](Vector const& declarations) { - auto* declaration = convert_to_style_declaration(declarations); - if (!declaration) { - dbgln_if(CSS_PARSER_DEBUG, "CSSParser: nested declarations invalid; discarding."); - return; - } - child_rules.append(CSSNestedDeclarations::create(realm(), *declaration)); + child_rules.append(CSSNestedDeclarations::create(realm(), *convert_to_style_declaration(declarations))); }); } auto rule_list = CSSRuleList::create(realm(), child_rules); diff --git a/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Libraries/LibWeb/CSS/Parser/Parser.cpp index 3e4d4c00a6e..f54ed099c31 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -1493,7 +1493,7 @@ void Parser::extract_property(Declaration const& declaration, PropertiesAndCusto } } -CSSStyleProperties* Parser::convert_to_style_declaration(Vector const& declarations) +GC::Ref Parser::convert_to_style_declaration(Vector const& declarations) { PropertiesAndCustomProperties properties; PropertiesAndCustomProperties& dest = properties; diff --git a/Libraries/LibWeb/CSS/Parser/Parser.h b/Libraries/LibWeb/CSS/Parser/Parser.h index 7c74ac7a938..2c7a350ead3 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Libraries/LibWeb/CSS/Parser/Parser.h @@ -245,7 +245,7 @@ private: GC::Ptr convert_to_supports_rule(AtRule const&, Nested); GC::Ptr convert_to_property_rule(AtRule const& rule); - CSSStyleProperties* convert_to_style_declaration(Vector const&); + GC::Ref convert_to_style_declaration(Vector const&); Optional convert_to_style_property(Declaration const&); Optional parse_dimension(ComponentValue const&); diff --git a/Libraries/LibWeb/CSS/Parser/RuleParsing.cpp b/Libraries/LibWeb/CSS/Parser/RuleParsing.cpp index 883a1bde1d4..b4be2aac584 100644 --- a/Libraries/LibWeb/CSS/Parser/RuleParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/RuleParsing.cpp @@ -103,11 +103,7 @@ GC::Ptr Parser::convert_to_style_rule(QualifiedRule const& qualifi if (nested == Nested::Yes) selectors = adapt_nested_relative_selector_list(selectors); - auto* declaration = convert_to_style_declaration(qualified_rule.declarations); - if (!declaration) { - dbgln_if(CSS_PARSER_DEBUG, "CSSParser: style rule declaration invalid; discarding."); - return {}; - } + auto declaration = convert_to_style_declaration(qualified_rule.declarations); GC::RootVector child_rules { realm().heap() }; for (auto& child : qualified_rule.child_rules) { @@ -125,12 +121,7 @@ GC::Ptr Parser::convert_to_style_rule(QualifiedRule const& qualifi } }, [&](Vector const& declarations) { - auto* declaration = convert_to_style_declaration(declarations); - if (!declaration) { - dbgln_if(CSS_PARSER_DEBUG, "CSSParser: nested declarations invalid; discarding."); - return; - } - child_rules.append(CSSNestedDeclarations::create(realm(), *declaration)); + child_rules.append(CSSNestedDeclarations::create(realm(), *convert_to_style_declaration(declarations))); }); } auto nested_rules = CSSRuleList::create(realm(), move(child_rules)); @@ -256,12 +247,7 @@ GC::Ptr Parser::convert_to_layer_rule(AtRule const& rule, Nested nested child_rules.append(child_rule); }, [&](Vector const& declarations) { - auto* declaration = convert_to_style_declaration(declarations); - if (!declaration) { - dbgln_if(CSS_PARSER_DEBUG, "CSSParser: nested declarations invalid; discarding."); - return; - } - child_rules.append(CSSNestedDeclarations::create(realm(), *declaration)); + child_rules.append(CSSNestedDeclarations::create(realm(), *convert_to_style_declaration(declarations))); }); } auto rule_list = CSSRuleList::create(realm(), child_rules); @@ -478,12 +464,7 @@ GC::Ptr Parser::convert_to_supports_rule(AtRule const& rule, Ne child_rules.append(child_rule); }, [&](Vector const& declarations) { - auto* declaration = convert_to_style_declaration(declarations); - if (!declaration) { - dbgln_if(CSS_PARSER_DEBUG, "CSSParser: nested declarations invalid; discarding."); - return; - } - child_rules.append(CSSNestedDeclarations::create(realm(), *declaration)); + child_rules.append(CSSNestedDeclarations::create(realm(), *convert_to_style_declaration(declarations))); }); }