From 38d6cc859862b12afe11fc91314c8540cb4f63ad Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 28 Jun 2020 12:58:04 +0200 Subject: [PATCH] LibWeb: Convert uppercase selector tag names to lowercase internally This is necessary for some older content to work correctly. There's probably a nicer (and correct-er) way to do this. Deferring to the new CSS parser. --- Libraries/LibWeb/Parser/CSSParser.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Libraries/LibWeb/Parser/CSSParser.cpp b/Libraries/LibWeb/Parser/CSSParser.cpp index f22d69cda1..c044a5e8f5 100644 --- a/Libraries/LibWeb/Parser/CSSParser.cpp +++ b/Libraries/LibWeb/Parser/CSSParser.cpp @@ -510,10 +510,17 @@ public: PARSE_ASSERT(!buffer.is_null()); } + auto value = String::copy(buffer); + + if (type == Selector::SimpleSelector::Type::TagName) { + // Some stylesheets use uppercase tag names, so here's a hack to just lowercase them internally. + value = value.to_lowercase(); + } + Selector::SimpleSelector simple_selector { type, Selector::SimpleSelector::PseudoClass::None, - String::copy(buffer), + value, Selector::SimpleSelector::AttributeMatchType::None, String(), String()