diff --git a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp index 8f83441728d..3ff8e271f83 100644 --- a/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp +++ b/Libraries/LibWeb/CSS/Parser/ValueParsing.cpp @@ -964,6 +964,11 @@ RefPtr Parser::parse_resolution_value(TokenStream values always excludes negative values, in addition to any explicit + // ranges that might be specified. + // https://drafts.csswg.org/css-values-4/#resolution + if (dimension_token.dimension_value() < 0) + return nullptr; if (auto resolution_type = Resolution::unit_from_name(dimension_token.dimension_unit()); resolution_type.has_value()) { transaction.commit(); return ResolutionStyleValue::create(Resolution { (dimension_token.dimension_value()), resolution_type.release_value() }); diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/mediaqueries/test_media_queries.txt b/Tests/LibWeb/Text/expected/wpt-import/css/mediaqueries/test_media_queries.txt index 913dbcdd7ce..8a4cefccaf7 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/mediaqueries/test_media_queries.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/mediaqueries/test_media_queries.txt @@ -2,8 +2,8 @@ Harness status: OK Found 1345 tests -1269 Pass -76 Fail +1272 Pass +73 Fail Pass query_should_be_parseable: (orientation) Pass query_should_be_parseable: not (orientation) Pass expression_should_be_known: (orientation) @@ -1153,7 +1153,7 @@ Pass expression_should_be_known: resolution: 0dppx Pass expression_should_be_known: resolution: 0x Pass expression_should_be_known: resolution: calc(6x / 2) Pass expression_should_be_parseable: resolution: -3dpi -Fail expression_should_be_unknown: resolution: -3dpi +Pass expression_should_be_unknown: resolution: -3dpi Pass expression_should_be_known: min-resolution: 3dpi Pass expression_should_be_known: min-resolution:3dpi Pass expression_should_be_known: min-resolution: 3.0dpi @@ -1169,7 +1169,7 @@ Pass expression_should_be_known: min-resolution: 0dppx Pass expression_should_be_known: min-resolution: 0x Pass expression_should_be_known: min-resolution: calc(6x / 2) Pass expression_should_be_parseable: min-resolution: -3dpi -Fail expression_should_be_unknown: min-resolution: -3dpi +Pass expression_should_be_unknown: min-resolution: -3dpi Pass expression_should_be_known: max-resolution: 3dpi Pass expression_should_be_known: max-resolution:3dpi Pass expression_should_be_known: max-resolution: 3.0dpi @@ -1185,7 +1185,7 @@ Pass expression_should_be_known: max-resolution: 0dppx Pass expression_should_be_known: max-resolution: 0x Pass expression_should_be_known: max-resolution: calc(6x / 2) Pass expression_should_be_parseable: max-resolution: -3dpi -Fail expression_should_be_unknown: max-resolution: -3dpi +Pass expression_should_be_unknown: max-resolution: -3dpi Pass find_resolution Pass resolution is exact: should_apply: (resolution: ${resolution}dpi) Pass resolution is exact: should_apply: (resolution: ${Math.floor(resolution/96)}dppx)