Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
background-size should not accept unitless lengths
https://bugs.webkit.org/show_bug.cgi?id=139029
rdar://97039770

Reviewed by Antti Koivisto and Tim Nguyen.

Align with other browsers by not using unitless length parsing for background-size.

* LayoutTests/fast/backgrounds/size/parsing-background-size-values-expected.txt:
* LayoutTests/fast/backgrounds/size/parsing-inherit-expected.txt:
* LayoutTests/fast/backgrounds/size/resources/parsing-background-size-values.js:
(test):
* LayoutTests/fast/backgrounds/size/resources/parsing-inherit.js:
(test):
* LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-002-expected.txt:
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::shouldAcceptUnitlessValue):
(WebCore::CSSPropertyParserHelpers::IntegerTypeRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::consumeMetaConsumer):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParametersRaw):
(WebCore::CSSPropertyParserHelpers::consumeColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParametersRaw):
(WebCore::CSSPropertyParserHelpers::consumePositionCoordinates):
(WebCore::CSSPropertyParserHelpers::consumePrefixedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumePrefixedLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
(WebCore::CSSPropertyParserHelpers::consumeSingleShadow):
(WebCore::CSSPropertyParserHelpers::consumeFamilyNameList):
(WebCore::CSSPropertyParserHelpers::consumeFontVariantEastAsian):
(WebCore::CSSPropertyParserHelpers::consumeFontVariantAlternates):
(WebCore::CSSPropertyParserHelpers::consumeClip):
(WebCore::CSSPropertyParserHelpers::consumeSteps):
(WebCore::CSSPropertyParserHelpers::consumeCubicBezier):
(WebCore::CSSPropertyParserHelpers::consumeSpringFunction):
(WebCore::CSSPropertyParserHelpers::consumeTransformFunction):
(WebCore::CSSPropertyParserHelpers::consumeAttr):
(WebCore::CSSPropertyParserHelpers::consumeBasicShapePath):
(WebCore::CSSPropertyParserHelpers::consumeReflect):
(WebCore::CSSPropertyParserHelpers::consumeBackgroundSize):
(WebCore::CSSPropertyParserHelpers::consumeAlignTracks):
(WebCore::CSSPropertyParserHelpers::consumeJustifyTracks):
(WebCore::CSSPropertyParserHelpers::consumeHangingPunctuation):

Canonical link: https://commits.webkit.org/262873@main
  • Loading branch information
annevk authored and nt1m committed Apr 12, 2023
1 parent 2f4c8f0 commit 0b6c4aa
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 68 deletions.
Expand Up @@ -5,9 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE

PASS test("background-size: contain;") is "contain"
PASS test("background-size: cover;") is "cover"
PASS test("background-size: 100 100;") is "100px 100px"
PASS test("background-size: 100px 100px;") is "100px 100px"
PASS test("background-size: 100;") is "100px auto"
PASS test("background-size: 100px;") is "100px auto"
PASS test("background-size: auto 50px;") is "auto 50px"
PASS test("background-size: 50px auto;") is "50px auto"
Expand All @@ -16,6 +14,8 @@ PASS test("background-size: 30% 20%;") is "30% 20%"
PASS test("background-size: 4em auto;") is "4em auto"
PASS test("background-size: 5em;") is "5em auto"
PASS test("-webkit-background-size: 5em ;") is "5em 5em"
PASS test("background-size: 100 100;") is ""
PASS test("background-size: 100;") is ""
PASS test("background-size: 100 100 100;") is ""
PASS test("background-size: coconut;") is ""
PASS test("background-size: 10px coconut;") is ""
Expand Down
Expand Up @@ -5,7 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE

PASS test("background-size: contain;") is "contain"
PASS test("background-size: cover;") is "cover"
PASS test("background-size: 100 100;") is "100px 100px"
PASS test("background-size: 100 100;") is "auto"
PASS test("background-size: 100px 100px;") is "100px 100px"
PASS test("background-size: auto 50px;") is "auto 50px"
PASS test("background-size: 50px auto;") is "50px auto"
Expand Down
Expand Up @@ -5,17 +5,15 @@ function test(value)
var div = document.createElement("div");
div.setAttribute("style", value);
document.body.appendChild(div);

var result = div.style.getPropertyValue(value.substring(0, value.indexOf(":")));
document.body.removeChild(div);
return result;
}

shouldBe('test("background-size: contain;")', '"contain"');
shouldBe('test("background-size: cover;")', '"cover"');
shouldBe('test("background-size: 100 100;")', '"100px 100px"');
shouldBe('test("background-size: 100px 100px;")', '"100px 100px"');
shouldBe('test("background-size: 100;")', '"100px auto"');
shouldBe('test("background-size: 100px;")', '"100px auto"');
shouldBe('test("background-size: auto 50px;")', '"auto 50px"');
shouldBe('test("background-size: 50px auto;")', '"50px auto"');
Expand All @@ -25,6 +23,8 @@ shouldBe('test("background-size: 4em auto;")', '"4em auto"');
shouldBe('test("background-size: 5em;")', '"5em auto"');
shouldBe('test("-webkit-background-size: 5em ;")', '"5em 5em"');

shouldBe('test("background-size: 100 100;")', '""');
shouldBe('test("background-size: 100;")', '""');
shouldBe('test("background-size: 100 100 100;")', '""');
shouldBe('test("background-size: coconut;")', '""');
shouldBe('test("background-size: 10px coconut;")', '""');
Expand Down
Expand Up @@ -5,19 +5,19 @@ function test(value)
var div = document.createElement("div");
div.setAttribute("style", value);
document.body.appendChild(div);

var child = document.createElement("div");
child.setAttribute("style", "background-size: inherit;");
div.appendChild(child);

var result = getComputedStyle(child, null).getPropertyValue("background-size");
document.body.removeChild(div);
return result;
}

shouldBe('test("background-size: contain;")', '"contain"');
shouldBe('test("background-size: cover;")', '"cover"');
shouldBe('test("background-size: 100 100;")', '"100px 100px"');
shouldBe('test("background-size: 100 100;")', '"auto"');
shouldBe('test("background-size: 100px 100px;")', '"100px 100px"');
shouldBe('test("background-size: auto 50px;")', '"auto 50px"');
shouldBe('test("background-size: 50px auto;")', '"50px auto"');
Expand Down
@@ -1,6 +1,6 @@

PASS Property background-blend-mode does not support quirky length
FAIL Property background-size does not support quirky length assert_not_equals: got disallowed value "1234px auto"
PASS Property background-size does not support quirky length
PASS Property box-shadow does not support quirky length
PASS Property clip-path does not support quirky length
PASS Property column-span does not support quirky length
Expand Down

0 comments on commit 0b6c4aa

Please sign in to comment.