From bf15b7ac12e2e796c35c5714c3a3a47be7308d20 Mon Sep 17 00:00:00 2001 From: Tim Ledbetter Date: Sun, 9 Mar 2025 16:22:40 +0000 Subject: [PATCH] LibWeb: Treat media query with an invalid media type as invalid --- Libraries/LibWeb/CSS/Parser/MediaParsing.cpp | 4 +++ .../mq-invalid-media-type-001.html | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 Tests/LibWeb/Ref/input/wpt-import/css/mediaqueries/mq-invalid-media-type-001.html diff --git a/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp b/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp index b4633ead957..3a017d7768d 100644 --- a/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/MediaParsing.cpp @@ -112,6 +112,10 @@ NonnullRefPtr Parser::parse_media_query(TokenStream& // `` if (auto media_type = parse_media_type(tokens); media_type.has_value()) { + // https://drafts.csswg.org/mediaqueries-4/#error-handling + // An unknown must be treated as not matching. + if (media_type.value() == MediaQuery::MediaType::Unknown) + return invalid_media_query(); media_query->m_media_type = media_type.value(); tokens.discard_whitespace(); } else { diff --git a/Tests/LibWeb/Ref/input/wpt-import/css/mediaqueries/mq-invalid-media-type-001.html b/Tests/LibWeb/Ref/input/wpt-import/css/mediaqueries/mq-invalid-media-type-001.html new file mode 100644 index 00000000000..f5002b9785a --- /dev/null +++ b/Tests/LibWeb/Ref/input/wpt-import/css/mediaqueries/mq-invalid-media-type-001.html @@ -0,0 +1,31 @@ + + + + Test: syntax error handling in Media Queries + + + + + + + + +

Test passes if there is a filled green square and no red.

+
+ + +