From 235018046e54713071511f6f2d9f9b5aea0856ef Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Mon, 6 Mar 2023 14:46:21 +0000 Subject: [PATCH] LibWeb: Use free functions for parsing in `@Supports` --- Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp | 8 ++++++++ Userland/Libraries/LibWeb/CSS/Parser/Parser.h | 1 + Userland/Libraries/LibWeb/CSS/Supports.cpp | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp index 16258b3f9e..f537edca45 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -7455,4 +7455,12 @@ RefPtr parse_css_supports(CSS::Parser::ParsingContext const& cont return parser.parse_as_supports(); } +Optional parse_css_supports_condition(CSS::Parser::ParsingContext const& context, StringView string) +{ + if (string.is_empty()) + return {}; + CSS::Parser::Parser parser(context, string); + return parser.parse_as_supports_condition(); +} + } diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h index e4f5d71f88..fe0d2ec1b8 100644 --- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.h +++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.h @@ -376,5 +376,6 @@ CSS::CSSRule* parse_css_rule(CSS::Parser::ParsingContext const&, StringView); RefPtr parse_media_query(CSS::Parser::ParsingContext const&, StringView); Vector> parse_media_query_list(CSS::Parser::ParsingContext const&, StringView); RefPtr parse_css_supports(CSS::Parser::ParsingContext const&, StringView); +Optional parse_css_supports_condition(CSS::Parser::ParsingContext const&, StringView); } diff --git a/Userland/Libraries/LibWeb/CSS/Supports.cpp b/Userland/Libraries/LibWeb/CSS/Supports.cpp index 7a390f3156..65ba825edb 100644 --- a/Userland/Libraries/LibWeb/CSS/Supports.cpp +++ b/Userland/Libraries/LibWeb/CSS/Supports.cpp @@ -52,13 +52,13 @@ bool Supports::InParens::evaluate() const bool Supports::Declaration::evaluate() const { - auto style_property = Parser::Parser({}, declaration).parse_as_supports_condition(); + auto style_property = parse_css_supports_condition({}, declaration); return style_property.has_value(); } bool Supports::Selector::evaluate() const { - auto style_property = Parser::Parser({}, selector).parse_as_selector(); + auto style_property = parse_selector({}, selector); return style_property.has_value(); }