1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 17:57:35 +00:00

LibWeb: Construct CSS Tokenizer and Parser with a StringView encoding

This doesn't need to be a full (Deprecated)String, so let's not force it
to be.
This commit is contained in:
Sam Atkins 2023-02-13 17:25:32 +00:00 committed by Tim Flynn
parent d6075ef5b5
commit 8af65108e4
5 changed files with 6 additions and 6 deletions

View file

@ -82,7 +82,7 @@ AK::URL ParsingContext::complete_url(DeprecatedString const& addr) const
return m_url.complete_url(addr); return m_url.complete_url(addr);
} }
Parser::Parser(ParsingContext const& context, StringView input, DeprecatedString const& encoding) Parser::Parser(ParsingContext const& context, StringView input, StringView encoding)
: m_context(context) : m_context(context)
, m_tokenizer(input, encoding) , m_tokenizer(input, encoding)
, m_tokens(m_tokenizer.parse()) , m_tokens(m_tokenizer.parse())

View file

@ -59,7 +59,7 @@ private:
class Parser { class Parser {
public: public:
Parser(ParsingContext const&, StringView input, DeprecatedString const& encoding = "utf-8"); Parser(ParsingContext const&, StringView input, StringView encoding = "utf-8"sv);
~Parser() = default; ~Parser() = default;
CSSStyleSheet* parse_as_css_stylesheet(Optional<AK::URL> location); CSSStyleSheet* parse_as_css_stylesheet(Optional<AK::URL> location);

View file

@ -195,10 +195,10 @@ static inline bool is_E(u32 code_point)
return code_point == 0x45; return code_point == 0x45;
} }
Tokenizer::Tokenizer(StringView input, DeprecatedString const& encoding) Tokenizer::Tokenizer(StringView input, StringView encoding)
{ {
// https://www.w3.org/TR/css-syntax-3/#css-filter-code-points // https://www.w3.org/TR/css-syntax-3/#css-filter-code-points
auto filter_code_points = [](StringView input, auto const& encoding) -> DeprecatedString { auto filter_code_points = [](StringView input, auto encoding) -> DeprecatedString {
auto* decoder = TextCodec::decoder_for(encoding); auto* decoder = TextCodec::decoder_for(encoding);
VERIFY(decoder); VERIFY(decoder);

View file

@ -60,7 +60,7 @@ public:
class Tokenizer { class Tokenizer {
public: public:
explicit Tokenizer(StringView input, DeprecatedString const& encoding); explicit Tokenizer(StringView input, StringView encoding);
[[nodiscard]] Vector<Token> parse(); [[nodiscard]] Vector<Token> parse();

View file

@ -43,7 +43,7 @@ void SyntaxHighlighter::rehighlight(Palette const& palette)
false); false);
}; };
CSS::Parser::Tokenizer tokenizer { text, "utf-8" }; CSS::Parser::Tokenizer tokenizer { text, "utf-8"sv };
auto tokens = tokenizer.parse(); auto tokens = tokenizer.parse();
for (auto const& token : tokens) { for (auto const& token : tokens) {
if (token.is(Parser::Token::Type::EndOfFile)) if (token.is(Parser::Token::Type::EndOfFile))