Diff
Modified: trunk/LayoutTests/ChangeLog (283560 => 283561)
--- trunk/LayoutTests/ChangeLog 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/LayoutTests/ChangeLog 2021-10-05 18:19:17 UTC (rev 283561)
@@ -1,3 +1,13 @@
+2021-10-05 Nikos Mouchtaris <[email protected]>
+
+ radial-gradient does not accept calc values that combine length and percent
+ https://bugs.webkit.org/show_bug.cgi?id=230388
+
+ Reviewed by Simon Fraser.
+
+ * css3/calc/css3-radial-gradients-expected.html:
+ * css3/calc/css3-radial-gradients.html:
+
2021-10-05 Ayumi Kojima <[email protected]>
[ iOS15 WK2 ] http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html is a constant timeout.
Modified: trunk/LayoutTests/css3/calc/css3-radial-gradients-expected.html (283560 => 283561)
--- trunk/LayoutTests/css3/calc/css3-radial-gradients-expected.html 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/LayoutTests/css3/calc/css3-radial-gradients-expected.html 2021-10-05 18:19:17 UTC (rev 283561)
@@ -47,6 +47,15 @@
background-image: -webkit-radial-gradient(circle closest-side, red, green 40px, blue);
background-image: -moz-radial-gradient(circle closest-side, red, green 40px, blue);
}
+
+.gradient9 {
+ background-image: radial-gradient(50px 70px, #f0f, #fff);
+}
+
+.gradient10 {
+ background-image: radial-gradient(50px 60px, #f0f, #fff);
+}
+
</style>
<body>
<div class="gradient1 box"></div>
@@ -59,4 +68,6 @@
<br>
<div class="gradient7 box"></div>
<div class="gradient8 box"></div>
+ <div class="gradient9 box"></div>
+ <div class="gradient10 box"></div>
</body>
Modified: trunk/LayoutTests/css3/calc/css3-radial-gradients.html (283560 => 283561)
--- trunk/LayoutTests/css3/calc/css3-radial-gradients.html 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/LayoutTests/css3/calc/css3-radial-gradients.html 2021-10-05 18:19:17 UTC (rev 283561)
@@ -47,6 +47,14 @@
background-image: -webkit-radial-gradient(circle closest-side, red, green calc(50% + 10px), blue);
background-image: -moz-radial-gradient(circle closest-side, red, green -moz-calc(50% + 10px), blue);
}
+
+.gradient9 {
+ background-image: radial-gradient(50px calc(50% + 10px), #f0f, #fff);
+}
+
+.gradient10 {
+ background-image: radial-gradient(50px 50%, #f0f, #fff);
+}
</style>
<body>
<div class="gradient1 box"></div>
@@ -59,4 +67,6 @@
<br>
<div class="gradient7 box"></div>
<div class="gradient8 box"></div>
+ <div class="gradient9 box"></div>
+ <div class="gradient10 box"></div>
</body>
Modified: trunk/Source/WebCore/ChangeLog (283560 => 283561)
--- trunk/Source/WebCore/ChangeLog 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/Source/WebCore/ChangeLog 2021-10-05 18:19:17 UTC (rev 283561)
@@ -1,3 +1,16 @@
+2021-10-05 Nikos Mouchtaris <[email protected]>
+
+ radial-gradient does not accept calc values that combine length and percent
+ https://bugs.webkit.org/show_bug.cgi?id=230388
+
+ Reviewed by Simon Fraser.
+
+ Removed outdated check that disallowed combined percentage and length expressions.
+ Added code to calculate radius for combined percentage and length expressions.
+
+ * css/parser/CSSPropertyParserHelpers.cpp:
+ (WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
+
2021-10-05 Tim Horton <[email protected]>
Add an alternate style for form controls, and implement it for checkboxes and radio buttons
Modified: trunk/Source/WebCore/css/CSSGradientValue.cpp (283560 => 283561)
--- trunk/Source/WebCore/css/CSSGradientValue.cpp 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/Source/WebCore/css/CSSGradientValue.cpp 2021-10-05 18:19:17 UTC (rev 283561)
@@ -977,6 +977,10 @@
result = radius.floatValue() * conversionData.zoom();
else if (widthOrHeight && radius.isPercentage())
result = *widthOrHeight * radius.floatValue() / 100;
+ else if (widthOrHeight && radius.isCalculatedPercentageWithLength()) {
+ auto _expression_ = radius.cssCalcValue()->createCalculationValue(conversionData);
+ result = _expression_->evaluate(*widthOrHeight);
+ }
else
result = radius.computeLength<float>(conversionData);
return result;
Modified: trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp (283560 => 283561)
--- trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp 2021-10-05 18:15:47 UTC (rev 283560)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp 2021-10-05 18:19:17 UTC (rev 283561)
@@ -3105,9 +3105,6 @@
// If there's only one size, it must be a length.
if (!verticalSize && horizontalSize && horizontalSize->isPercentage())
return nullptr;
- if ((horizontalSize && horizontalSize->isCalculatedPercentageWithLength())
- || (verticalSize && verticalSize->isCalculatedPercentageWithLength()))
- return nullptr;
RefPtr<CSSPrimitiveValue> centerX;
RefPtr<CSSPrimitiveValue> centerY;