mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 13:49:16 +00:00
LibWeb/CSS: Reject negative <resolution>
values
Gets us 3 more WPT passes.
This commit is contained in:
parent
fb975cc156
commit
e251b451ef
Notes:
github-actions[bot]
2025-05-23 09:18:54 +00:00
Author: https://github.com/AtkinsSJ
Commit: e251b451ef
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4817
2 changed files with 10 additions and 5 deletions
|
@ -964,6 +964,11 @@ RefPtr<CSSStyleValue const> Parser::parse_resolution_value(TokenStream<Component
|
||||||
if (tokens.next_token().is(Token::Type::Dimension)) {
|
if (tokens.next_token().is(Token::Type::Dimension)) {
|
||||||
auto transaction = tokens.begin_transaction();
|
auto transaction = tokens.begin_transaction();
|
||||||
auto& dimension_token = tokens.consume_a_token().token();
|
auto& dimension_token = tokens.consume_a_token().token();
|
||||||
|
// The allowed range of <resolution> 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()) {
|
if (auto resolution_type = Resolution::unit_from_name(dimension_token.dimension_unit()); resolution_type.has_value()) {
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
return ResolutionStyleValue::create(Resolution { (dimension_token.dimension_value()), resolution_type.release_value() });
|
return ResolutionStyleValue::create(Resolution { (dimension_token.dimension_value()), resolution_type.release_value() });
|
||||||
|
|
|
@ -2,8 +2,8 @@ Harness status: OK
|
||||||
|
|
||||||
Found 1345 tests
|
Found 1345 tests
|
||||||
|
|
||||||
1269 Pass
|
1272 Pass
|
||||||
76 Fail
|
73 Fail
|
||||||
Pass query_should_be_parseable: (orientation)
|
Pass query_should_be_parseable: (orientation)
|
||||||
Pass query_should_be_parseable: not (orientation)
|
Pass query_should_be_parseable: not (orientation)
|
||||||
Pass expression_should_be_known: (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: 0x
|
||||||
Pass expression_should_be_known: resolution: calc(6x / 2)
|
Pass expression_should_be_known: resolution: calc(6x / 2)
|
||||||
Pass expression_should_be_parseable: resolution: -3dpi
|
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:3dpi
|
Pass expression_should_be_known: min-resolution:3dpi
|
||||||
Pass expression_should_be_known: min-resolution: 3.0dpi
|
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: 0x
|
||||||
Pass expression_should_be_known: min-resolution: calc(6x / 2)
|
Pass expression_should_be_known: min-resolution: calc(6x / 2)
|
||||||
Pass expression_should_be_parseable: min-resolution: -3dpi
|
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:3dpi
|
Pass expression_should_be_known: max-resolution:3dpi
|
||||||
Pass expression_should_be_known: max-resolution: 3.0dpi
|
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: 0x
|
||||||
Pass expression_should_be_known: max-resolution: calc(6x / 2)
|
Pass expression_should_be_known: max-resolution: calc(6x / 2)
|
||||||
Pass expression_should_be_parseable: max-resolution: -3dpi
|
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 find_resolution
|
||||||
Pass resolution is exact: should_apply: (resolution: ${resolution}dpi)
|
Pass resolution is exact: should_apply: (resolution: ${resolution}dpi)
|
||||||
Pass resolution is exact: should_apply: (resolution: ${Math.floor(resolution/96)}dppx)
|
Pass resolution is exact: should_apply: (resolution: ${Math.floor(resolution/96)}dppx)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue