LibWeb/CSS: Implement type(<syntax>) in attr()

This lets the `attr()` interpret the attribute's contents as an
arbitrary type instead of just as a string or number.
This commit is contained in:
Sam Atkins
2025-07-10 17:19:53 +01:00
committed by Tim Ledbetter
parent 0a5e8c2865
commit 27a666f3b2
Notes: github-actions[bot] 2025-07-16 13:48:58 +00:00
8 changed files with 204 additions and 105 deletions

View File

@@ -2,8 +2,8 @@ Harness status: Error
Found 22 tests
14 Pass
8 Fail
15 Pass
7 Fail
Pass '--x: image-set(attr(data-foo))' with data-foo="https://does-not-exist.test/404.png"
Pass 'background-image: image-set(attr(data-foo))' with data-foo="https://does-not-exist.test/404.png"
Fail 'background-image: image-set("https://does-not-exist.test/404.png")' with data-foo="https://does-not-exist.test/404.png"
@@ -13,13 +13,13 @@ Fail 'background-image: src("https://does-not-exist.test/404.png")' with data-fo
Pass '--x: src(string("https://does-not-exist.test" attr(data-foo)))' with data-foo="/404.png"
Pass 'background-image: src(string("https://does-not-exist.test" attr(data-foo)))' with data-foo="/404.png"
Fail 'background-image: src(string("https://does-not-exist.test/""404.png"))' with data-foo="/404.png"
Fail '--x: attr(data-foo type(<url>))' with data-foo="url(https://does-not-exist.test/404.png)"
Pass 'background-image: attr(data-foo type(<url>))' with data-foo="url(https://does-not-exist.test/404.png)"
Pass '--x: attr(data-foo type(<url>))' with data-foo="url(https://does-not-exist.test/404.png)"
Fail 'background-image: attr(data-foo type(<url>))' with data-foo="url(https://does-not-exist.test/404.png)"
Pass 'background-image: url("https://does-not-exist.test/404.png")' with data-foo="url(https://does-not-exist.test/404.png)"
Pass '--x: image(attr(data-foo))' with data-foo="https://does-not-exist.test/404.png"
Pass 'background-image: image(attr(data-foo))' with data-foo="https://does-not-exist.test/404.png"
Fail 'background-image: image("https://does-not-exist.test/404.png")' with data-foo="https://does-not-exist.test/404.png"
Fail 'background-image: url(https://does-not-exist.test/404.png), attr(data-foo type(<image>))' with data-foo="linear-gradient(#000000, #ffffff)"
Pass 'background-image: url(https://does-not-exist.test/404.png), attr(data-foo type(<image>))' with data-foo="linear-gradient(#000000, #ffffff)"
Fail '--x: image-set(var(--y, attr(data-foo)))' with data-foo="https://does-not-exist.test/404.png"
Pass 'background-image: image-set(var(--y, attr(data-foo)))' with data-foo="https://does-not-exist.test/404.png"
Pass '--x: image-set(var(--some-string))' with data-foo="https://does-not-exist.test/404.png"