layout: Enable rendering of conical-gradient and repeating-conical-gradient (#31597)

This also ignores a clippy warning for a new function (and a similar
existing one), until this code can be refactored to use temporary Rust
strutures to carry display list building state.

There are a few new test failures here:

 - FAIL [expected PASS] /css/css-images/image-set/image-set-conic-gradient-rendering.html
 - FAIL [expected PASS] /css/css-images/image-set/image-set-repeating-conic-gradient-rendering.html

 These fail because Servo does not yet support `image-set()`.

 - FAIL [expected PASS] /css/filter-effects/filter-function/filter-function-conic-gradient.html
 - FAIL [expected PASS] /css/filter-effects/filter-function/filter-function-repeating-conic-gradient.html

 These fail because Servo does not support the very early filter effects
 specification.

 - FAIL [expected PASS] /html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation.html
 - FAIL [expected PASS] /html/canvas/element/manual/fill-and-stroke-styles/conic-gradient.html

 These fail because this change only adds support for CSS conical
 gradients. Another set of changes will be necessary to support this for
 Canvas.
This commit is contained in:
Martin Robinson 2024-03-11 13:58:44 +01:00 committed by GitHub
parent de7b9bed85
commit 1d1f239ecc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 161 additions and 405 deletions

View file

@ -1,48 +0,0 @@
[background-image-computed.sub.html]
[Property background-image value 'conic-gradient(at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at 10px 10px, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at 10px 10px, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at 10px 10px, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at 10px 10px, red, blue)']
expected: FAIL

View file

@ -1,7 +1,3 @@
[border-image-source-computed.sub.html]
[Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)' computes to 'conic-gradient(from 90deg at 80% 90%, rgb(0, 255, 0), rgb(0, 0, 0))']
expected: FAIL
[Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)']
expected: FAIL

View file

@ -1,86 +0,0 @@
[color-stops-parsing.html]
[conic-gradient(black, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black, green, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, green 50%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 50%, green 10%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black, 25%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, 25%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, white 50% 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, green, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, green 50%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 50%, green 10%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, 25%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, 25%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, white 50% 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable \]]
expected: FAIL

View file

@ -1943,18 +1943,6 @@
[Property background-image value 'radial-gradient(in oklch decreasing hue at right center, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 30deg, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at left 10px top 50em, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 30deg, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at left 10px top 50em, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(in lab, red, blue)']
expected: FAIL

View file

@ -1943,18 +1943,6 @@
[e.style['background-image'\] = "radial-gradient(in oklch decreasing hue at right center, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, red, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, red, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(in lab, red, blue)" should set the property value]
expected: FAIL
@ -3737,12 +3725,6 @@
[e.style['background-image'\] = "radial-gradient(in oklch decreasing hue at right center, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(in lab, red, 50%, blue)" should set the property value]
expected: FAIL

View file

@ -1,3 +0,0 @@
[calc-linear-radial-conic-gradient-001.html]
[testing background-image: conic-gradient(rgb(0, 128, 0) calc(50% + 10%), rgb(0, 0, 255) calc(60% + 20%))]
expected: FAIL

View file

@ -1,48 +0,0 @@
[background-image-computed.sub.html]
[Property background-image value 'conic-gradient(at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at 10px 10px, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at 10px 10px, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 45deg, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from 0deg at 10px 10px, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg, rgb(255, 0, 0), rgb(0, 0, 255))']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at center, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at 50%, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from -45deg at 10px 10px, red, blue)']
expected: FAIL

View file

@ -1,4 +0,0 @@
[border-image-source-computed.sub.html]
[Property border-image-source value 'conic-gradient(from 90deg at 80% 90%, lime, black)']
expected: FAIL

View file

@ -1,2 +0,0 @@
[conic-gradient-angle-negative.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[conic-gradient-angle.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[conic-gradient-center.html]
expected: FAIL

View file

@ -1,84 +0,0 @@
[color-stops-parsing.html]
[conic-gradient(black, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black, green, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, green 50%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 50%, green 10%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black, 25%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, 25%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, white) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, white 50% 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable \]]
expected: FAIL
[conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, green, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, green 50%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 50%, green 10%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black, 25%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, 25%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0%, 15%, green 50%, 60%, white 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, white) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, white 50% 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% 50%, green 25% 75%, white 50% 100%) [ parsable \]]
expected: FAIL
[repeating-conic-gradient(black 0% calc(100% / 5), 25%, green 30% 60%, calc(100% * 3 / 4), white calc(100% - 20%) 100%) [ parsable \]]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-set-conic-gradient-rendering.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-set-repeating-conic-gradient-rendering.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[multiple-position-color-stop-conic-2.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[multiple-position-color-stop-conic.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[normalization-conic-2.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[normalization-conic-degenerate.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[normalization-conic.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[out-of-range-color-stop-conic.html]
expected: FAIL

View file

@ -1943,18 +1943,6 @@
[Property background-image value 'radial-gradient(in oklch decreasing hue at right center, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 30deg, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at left 10px top 50em, red, blue)']
expected: FAIL
[Property background-image value 'conic-gradient(from 30deg, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(at left 10px top 50em, color(srgb 1 0 0), blue)']
expected: FAIL
[Property background-image value 'conic-gradient(in lab, red, blue)']
expected: FAIL

View file

@ -1943,18 +1943,6 @@
[e.style['background-image'\] = "radial-gradient(in oklch decreasing hue at right center, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, red, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, red, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, color(srgb 1 0 0), blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(in lab, red, blue)" should set the property value]
expected: FAIL
@ -3737,12 +3725,6 @@
[e.style['background-image'\] = "radial-gradient(in oklch decreasing hue at right center, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(from 30deg, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(at left 10px top 50em, red, 50%, blue)" should set the property value]
expected: FAIL
[e.style['background-image'\] = "conic-gradient(in lab, red, 50%, blue)" should set the property value]
expected: FAIL

View file

@ -1,2 +0,0 @@
[repeating-conic-gradient.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[tiled-conic-gradients.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[calc-linear-radial-conic-gradient-001.html]
[testing background-image: conic-gradient(rgb(0, 128, 0) calc(50% + 10%), rgb(0, 0, 255) calc(60% + 20%))]
expected: FAIL

View file

@ -0,0 +1,2 @@
[filter-function-conic-gradient.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[filter-function-repeating-conic-gradient.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[conic-gradient-rotation.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[conic-gradient.html]
expected: FAIL