From b08ecc0cd1d2ac66a7c8315f9085b5b2116c02b3 Mon Sep 17 00:00:00 2001
From: Tim Ledbetter
Date: Wed, 15 Oct 2025 17:05:30 +0100
Subject: [PATCH 1/3] Tests: Update WPT color parsing tests
---
.../parsing/color-computed-color-function.txt | 51 ++++++++-
.../color-invalid-color-mix-function.txt | 31 +++---
.../parsing/color-valid-color-function.txt | 37 ++++++-
.../color-valid-color-mix-function.txt | 103 +++++++++++++-----
.../css/css-color/parsing/color-valid.txt | 7 +-
.../color-computed-color-function.html | 22 +++-
.../color-invalid-color-mix-function.html | 7 +-
.../parsing/color-valid-color-function.html | 2 +-
.../color-valid-color-mix-function.html | 69 +++++++-----
.../css/css-color/parsing/color-valid.html | 1 +
10 files changed, 241 insertions(+), 89 deletions(-)
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-computed-color-function.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-computed-color-function.txt
index afb6bd2300e..9a6d09ef75f 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-computed-color-function.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-computed-color-function.txt
@@ -1,9 +1,9 @@
Harness status: OK
-Found 421 tests
+Found 468 tests
401 Pass
-20 Fail
+67 Fail
Pass Property color value 'color(srgb 0% 0% 0%)'
Pass Property color value 'color(srgb 10% 10% 10%)'
Pass Property color value 'color(srgb .2 .2 25%)'
@@ -190,6 +190,37 @@ Pass Property color value 'color(display-p3 calc(NaN) 0 0)'
Pass Property color value 'color(display-p3 calc(0 / 0) 0 0)'
Fail Property color value 'color(display-p3 calc(50% + (sign(1em - 10px) * 10%)) 0 0 / 0.5)'
Fail Property color value 'color(display-p3 0.5 0 0 / calc(50% + (sign(1em - 10px) * 10%)))'
+Fail Property color value 'color(display-p3-linear 0% 0% 0%)'
+Fail Property color value 'color(display-p3-linear 10% 10% 10%)'
+Fail Property color value 'color(display-p3-linear .2 .2 25%)'
+Fail Property color value 'color(display-p3-linear 0 0 0 / 1)'
+Fail Property color value 'color(display-p3-linear 0% 0 0 / 0.5)'
+Fail Property color value 'color(display-p3-linear 20% 0 10/0.5)'
+Fail Property color value 'color(display-p3-linear 20% 0 10/50%)'
+Fail Property color value 'color(display-p3-linear 400% 0 10/50%)'
+Fail Property color value 'color(display-p3-linear 50% -160 160)'
+Fail Property color value 'color(display-p3-linear 50% -200 200)'
+Fail Property color value 'color(display-p3-linear 0 0 0 / -10%)'
+Fail Property color value 'color(display-p3-linear 0 0 0 / 110%)'
+Fail Property color value 'color(display-p3-linear 0 0 0 / 300%)'
+Fail Property color value 'color(display-p3-linear 200 200 200)'
+Fail Property color value 'color(display-p3-linear 200 200 200 / 200)'
+Fail Property color value 'color(display-p3-linear -200 -200 -200)'
+Fail Property color value 'color(display-p3-linear -200 -200 -200 / -200)'
+Fail Property color value 'color(display-p3-linear 200% 200% 200%)'
+Fail Property color value 'color(display-p3-linear 200% 200% 200% / 200%)'
+Fail Property color value 'color(display-p3-linear -200% -200% -200% / -200%)'
+Fail Property color value 'color(display-p3-linear calc(0.5 + 1) calc(0.5 - 1) calc(0.5) / calc(-0.5 + 1))'
+Fail Property color value 'color(display-p3-linear calc(50% * 3) calc(-150% / 3) calc(50%) / calc(-50% * 3))'
+Fail Property color value 'color(display-p3-linear none none none / none)'
+Fail Property color value 'color(display-p3-linear none none none)'
+Fail Property color value 'color(display-p3-linear 10% none none / none)'
+Fail Property color value 'color(display-p3-linear none none none / 0.5)'
+Fail Property color value 'color(display-p3-linear 0 0 0 / none)'
+Fail Property color value 'color(display-p3-linear calc(NaN) 0 0)'
+Fail Property color value 'color(display-p3-linear calc(0 / 0) 0 0)'
+Fail Property color value 'color(display-p3-linear calc(50% + (sign(1em - 10px) * 10%)) 0 0 / 0.5)'
+Fail Property color value 'color(display-p3-linear 0.5 0 0 / calc(50% + (sign(1em - 10px) * 10%)))'
Pass Property color value 'color(xyz 0 0 0)'
Pass Property color value 'color(xyz 0 0 0 / 1)'
Pass Property color value 'color(xyz 1 1 1)'
@@ -310,6 +341,22 @@ Pass Property color value 'color(display-p3 none none none / none)' [Display P3
Pass Property color value 'color(display-p3 1.00 none 0.2 / none)' [Display P3 with alpha, number and none]
Pass Property color value 'color(display-p3 100% none 20% / 30%)' [Display P3 with alpha, percent and none]
Pass Property color value 'color(display-p3 100% none 0.2 / 23.7%)' [Display P3 with alpha, number, percent and none]
+Fail Property color value 'color(display-p3-linear 1.00 0.50 0.200)' [Display P3 Linear all numbers]
+Fail Property color value 'color(display-p3-linear 100% 50% 20%)' [Display P3 Linear all percent]
+Fail Property color value 'color(display-p3-linear 100% 0.5 20%)' [Display P3 Linear mixed number and percent]
+Fail Property color value 'color(display-p3-linear 1.00 50% 0.2)' [Display P3 Linear mixed number and percent 2]
+Fail Property color value 'color(display-p3-linear none none none)' [Display P3 Linear all none]
+Fail Property color value 'color(display-p3-linear 1.00 none 0.2)' [Display P3 Linear number and none]
+Fail Property color value 'color(display-p3-linear 100% none 20%)' [Display P3 Linear percent and none]
+Fail Property color value 'color(display-p3-linear 100% none 0.2)' [Display P3 Linear number, percent and none]
+Fail Property color value 'color(display-p3-linear 1.00 0.50 0.200 / 0.6)' [Display P3 Linear with alpha, all numbers]
+Fail Property color value 'color(display-p3-linear 100% 50% 20% / 60%)' [Display P3 Linear with alpha, all percent]
+Fail Property color value 'color(display-p3-linear 100% 0.5 20% / 0.6)' [Display P3 Linear with alpha, mixed number and percent]
+Fail Property color value 'color(display-p3-linear 1.00 50% 0.2 / 60%)' [Display P3 Linear with alpha, mixed number and percent 2]
+Fail Property color value 'color(display-p3-linear none none none / none)' [Display P3 Linear with alpha, all none]
+Fail Property color value 'color(display-p3-linear 1.00 none 0.2 / none)' [Display P3 Linear with alpha, number and none]
+Fail Property color value 'color(display-p3-linear 100% none 20% / 30%)' [Display P3 Linear with alpha, percent and none]
+Fail Property color value 'color(display-p3-linear 100% none 0.2 / 23.7%)' [Display P3 Linear with alpha, number, percent and none]
Pass Property color value 'color(a98-rgb 1.00 0.50 0.200)' [A98 RGB all numbers]
Pass Property color value 'color(a98-rgb 100% 50% 20%)' [A98 RGB all percent]
Pass Property color value 'color(a98-rgb 100% 0.5 20%)' [A98 RGB mixed number and percent]
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-invalid-color-mix-function.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-invalid-color-mix-function.txt
index 57cb17a6c87..d714053aa96 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-invalid-color-mix-function.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-invalid-color-mix-function.txt
@@ -1,8 +1,8 @@
Harness status: OK
-Found 174 tests
+Found 169 tests
-174 Pass
+169 Pass
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 10% 20%) -10%, hsl(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 10% 20%) 150%, hsl(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 10% 20%) 0%, hsl(30deg 30% 40%) 0%)" should not set the property value
@@ -15,7 +15,6 @@ Pass e.style['color'] = "color-mix(in hsl foo, hsl(120deg 10% 20%), hsl(30deg 30
Pass e.style['color'] = "color-mix(in hsl hsl(120deg 10% 20%), hsl(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 10% 20%) hsl(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(hsl(120deg 10% 20%), hsl(30deg 30% 40%), in hsl)" should not set the property value
-Pass e.style['color'] = "color-mix(hsl(120deg 10% 20%), hsl(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hwb, hwb(120deg 10% 20%) -10%, hwb(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hwb, hwb(120deg 10% 20%) 150%, hwb(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hwb, hwb(120deg 10% 20%) 0%, hwb(30deg 30% 40%) 0%)" should not set the property value
@@ -28,7 +27,6 @@ Pass e.style['color'] = "color-mix(in hwb foo, hwb(120deg 10% 20%), hwb(30deg 30
Pass e.style['color'] = "color-mix(in hwb hwb(120deg 10% 20%), hwb(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in hwb, hwb(120deg 10% 20%) hwb(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(hwb(120deg 10% 20%), hwb(30deg 30% 40%), in hwb)" should not set the property value
-Pass e.style['color'] = "color-mix(hwb(120deg 10% 20%), hwb(30deg 30% 40%))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb, red, blue blue)" should not set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10% 20 30deg) -10%, lch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10% 20 30deg) 150%, lch(50% 60 70deg))" should not set the property value
@@ -42,7 +40,6 @@ Pass e.style['color'] = "color-mix(in lch foo, lch(10% 20 30deg), lch(50% 60 70d
Pass e.style['color'] = "color-mix(in lch lch(10% 20 30deg), lch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10% 20 30deg) lch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(lch(10% 20 30deg), lch(50% 60 70deg), in lch)" should not set the property value
-Pass e.style['color'] = "color-mix(lch(10% 20 30deg), lch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(10% 20 30deg) -10%, oklch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(10% 20 30deg) 150%, oklch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(10% 20 30deg) 0%, oklch(50% 60 70deg) 0%)" should not set the property value
@@ -55,7 +52,6 @@ Pass e.style['color'] = "color-mix(in oklch foo, oklch(10% 20 30deg), oklch(50%
Pass e.style['color'] = "color-mix(in oklch oklch(10% 20 30deg), oklch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(10% 20 30deg) oklch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(oklch(10% 20 30deg), oklch(50% 60 70deg), in oklch)" should not set the property value
-Pass e.style['color'] = "color-mix(oklch(10% 20 30deg), oklch(50% 60 70deg))" should not set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10% 20 30) -10%, lab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10% 20 30) 150%, lab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10% 20 30) 0%, lab(50% 60 70) 0%)" should not set the property value
@@ -66,7 +62,6 @@ Pass e.style['color'] = "color-mix(in lab longer hue, lab(10% 20 30), lab(50% 60
Pass e.style['color'] = "color-mix(in lab lab(10% 20 30), lab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10% 20 30) lab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(lab(10% 20 30), lab(50% 60 70), in lab)" should not set the property value
-Pass e.style['color'] = "color-mix(lab(10% 20 30), lab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in oklab, oklab(10% 20 30) -10%, oklab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in oklab, oklab(10% 20 30) 150%, oklab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in oklab, oklab(10% 20 30) 0%, oklab(50% 60 70) 0%)" should not set the property value
@@ -77,7 +72,6 @@ Pass e.style['color'] = "color-mix(in oklab longer hue, oklab(10% 20 30), oklab(
Pass e.style['color'] = "color-mix(in oklab oklab(10% 20 30), oklab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in oklab, oklab(10% 20 30) oklab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(oklab(10% 20 30), oklab(50% 60 70), in oklab)" should not set the property value
-Pass e.style['color'] = "color-mix(oklab(10% 20 30), oklab(50% 60 70))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3) -10%, color(srgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3) 150%, color(srgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3) 0%, color(srgb .5 .6 .7) 0%)" should not set the property value
@@ -88,7 +82,6 @@ Pass e.style['color'] = "color-mix(in srgb longer hue, color(srgb .1 .2 .3), col
Pass e.style['color'] = "color-mix(in srgb color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3) color(srgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(srgb .1 .2 .3), color(srgb .5 .6 .7), in srgb)" should not set the property value
-Pass e.style['color'] = "color-mix(color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3) -10%, color(srgb-linear .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3) 150%, color(srgb-linear .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3) 0%, color(srgb-linear .5 .6 .7) 0%)" should not set the property value
@@ -99,7 +92,6 @@ Pass e.style['color'] = "color-mix(in srgb-linear longer hue, color(srgb-linear
Pass e.style['color'] = "color-mix(in srgb-linear color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3) color(srgb-linear .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7), in srgb-linear)" should not set the property value
-Pass e.style['color'] = "color-mix(color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3) -10%, color(display-p3 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3) 150%, color(display-p3 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3) 0%, color(display-p3 .5 .6 .7) 0%)" should not set the property value
@@ -110,7 +102,16 @@ Pass e.style['color'] = "color-mix(in display-p3 longer hue, color(display-p3 .1
Pass e.style['color'] = "color-mix(in display-p3 color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3) color(display-p3 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7), in display-p3)" should not set the property value
-Pass e.style['color'] = "color-mix(color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) -10%, color(display-p3-linear .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 150%, color(display-p3-linear .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 0%, color(display-p3-linear .5 .6 .7) 0%)" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) -10%, color(display-p3-linear .5 .6 .7 / .8))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 150%, color(display-p3-linear .5 .6 .7 / .8))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 0%, color(display-p3-linear .5 .6 .7 / .8) 0%)" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear longer hue, color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) color(display-p3-linear .5 .6 .7))" should not set the property value
+Pass e.style['color'] = "color-mix(color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7), in display-p3-linear)" should not set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3) -10%, color(a98-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3) 150%, color(a98-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3) 0%, color(a98-rgb .5 .6 .7) 0%)" should not set the property value
@@ -121,7 +122,6 @@ Pass e.style['color'] = "color-mix(in a98-rgb longer hue, color(a98-rgb .1 .2 .3
Pass e.style['color'] = "color-mix(in a98-rgb color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3) color(a98-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7), in a98-rgb)" should not set the property value
-Pass e.style['color'] = "color-mix(color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3) -10%, color(prophoto-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3) 150%, color(prophoto-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3) 0%, color(prophoto-rgb .5 .6 .7) 0%)" should not set the property value
@@ -132,7 +132,6 @@ Pass e.style['color'] = "color-mix(in prophoto-rgb longer hue, color(prophoto-rg
Pass e.style['color'] = "color-mix(in prophoto-rgb color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3) color(prophoto-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7), in prophoto-rgb)" should not set the property value
-Pass e.style['color'] = "color-mix(color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3) -10%, color(rec2020 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3) 150%, color(rec2020 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3) 0%, color(rec2020 .5 .6 .7) 0%)" should not set the property value
@@ -143,7 +142,6 @@ Pass e.style['color'] = "color-mix(in rec2020 longer hue, color(rec2020 .1 .2 .3
Pass e.style['color'] = "color-mix(in rec2020 color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3) color(rec2020 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7), in rec2020)" should not set the property value
-Pass e.style['color'] = "color-mix(color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3) -10%, color(xyz .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3) 150%, color(xyz .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3) 0%, color(xyz .5 .6 .7) 0%)" should not set the property value
@@ -154,7 +152,6 @@ Pass e.style['color'] = "color-mix(in xyz longer hue, color(xyz .1 .2 .3), color
Pass e.style['color'] = "color-mix(in xyz color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3) color(xyz .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(xyz .1 .2 .3), color(xyz .5 .6 .7), in xyz)" should not set the property value
-Pass e.style['color'] = "color-mix(color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3) -10%, color(xyz-d50 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3) 150%, color(xyz-d50 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3) 0%, color(xyz-d50 .5 .6 .7) 0%)" should not set the property value
@@ -165,7 +162,6 @@ Pass e.style['color'] = "color-mix(in xyz-d50 longer hue, color(xyz-d50 .1 .2 .3
Pass e.style['color'] = "color-mix(in xyz-d50 color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3) color(xyz-d50 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7), in xyz-d50)" should not set the property value
-Pass e.style['color'] = "color-mix(color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3) -10%, color(xyz-d65 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3) 150%, color(xyz-d65 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3) 0%, color(xyz-d65 .5 .6 .7) 0%)" should not set the property value
@@ -175,5 +171,4 @@ Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3 / .4) 0%,
Pass e.style['color'] = "color-mix(in xyz-d65 longer hue, color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d65 color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should not set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3) color(xyz-d65 .5 .6 .7))" should not set the property value
-Pass e.style['color'] = "color-mix(color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7), in xyz-d65)" should not set the property value
-Pass e.style['color'] = "color-mix(color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should not set the property value
\ No newline at end of file
+Pass e.style['color'] = "color-mix(color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7), in xyz-d65)" should not set the property value
\ No newline at end of file
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-function.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-function.txt
index 8438e3b77cd..33a00161264 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-function.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-function.txt
@@ -1,8 +1,9 @@
Harness status: OK
-Found 306 tests
+Found 340 tests
306 Pass
+34 Fail
Pass e.style['color'] = "color(srgb 0% 0% 0%)" should set the property value
Pass e.style['color'] = "color(srgb 10% 10% 10%)" should set the property value
Pass e.style['color'] = "color(srgb .2 .2 25%)" should set the property value
@@ -207,6 +208,40 @@ Pass e.style['color'] = "color(display-p3 calc(NaN) 0 0)" should set the propert
Pass e.style['color'] = "color(display-p3 calc(0 / 0) 0 0)" should set the property value
Pass e.style['color'] = "color(display-p3 calc(50% + (sign(1em - 10px) * 10%)) 0 0 / 0.5)" should set the property value
Pass e.style['color'] = "color(display-p3 0.5 0 0 / calc(50% + (sign(1em - 10px) * 10%)))" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0% 0% 0%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 10% 10% 10%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear .2 .2 25%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 0 0 / 1)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0% 0 0 / 0.5)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 20% 0 10/0.5)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 20% 0 10/50%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 400% 0 10/50%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 50% -160 160)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 50% -200 200)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 0 0 / -10%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 0 0 / 110%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 0 0 / 300%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 200 200 200)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 200 200 200 / 200)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear -200 -200 -200)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear -200 -200 -200 / -200)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 200% 200% 200%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 200% 200% 200% / 200%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear -200% -200% -200% / -200%)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(0.5 + 1) calc(0.5 - 1) calc(0.5) / calc(-0.5 + 1))" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(50% * 3) calc(-150% / 3) calc(50%) / calc(-50% * 3))" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(50%) 50% 0.5)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear none none none / none)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear none none none)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 10% none none / none)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear none none none / 0.5)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 0 0 / none)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 calc(infinity) 0)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0 calc(-infinity) 0)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(NaN) 0 0)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(0 / 0) 0 0)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear calc(50% + (sign(1em - 10px) * 10%)) 0 0 / 0.5)" should set the property value
+Fail e.style['color'] = "color(display-p3-linear 0.5 0 0 / calc(50% + (sign(1em - 10px) * 10%)))" should set the property value
Pass e.style['color'] = "color(xyz 0% 0% 0%)" should set the property value
Pass e.style['color'] = "color(xyz 10% 10% 10%)" should set the property value
Pass e.style['color'] = "color(xyz .2 .2 25%)" should set the property value
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-mix-function.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-mix-function.txt
index a5c3e55ccb2..445448f4bd7 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-mix-function.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid-color-mix-function.txt
@@ -1,8 +1,9 @@
Harness status: OK
-Found 587 tests
+Found 631 tests
-587 Pass
+560 Pass
+71 Fail
Pass e.style['color'] = "color-mix(in srgb, red, blue)" should set the property value
Pass e.style['color'] = "color-mix(in srgb, 70% red, 50% blue)" should set the property value
Pass e.style['color'] = "color-mix(in hsl, red, blue)" should set the property value
@@ -73,6 +74,7 @@ Pass e.style['color'] = "color-mix(in hsl, hsl(none 20% 40%), hsl(30deg none 80%
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40%))" should set the property value
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40% / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40% / none))" should set the property value
+Fail e.style['color'] = "color-mix(hsl(120deg 10% 20%), hsl(30deg 30% 40%))" should set the property value
Pass e.style['color'] = "color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)" should set the property value
Pass e.style['color'] = "color-mix(in hsl, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)" should set the property value
Pass e.style['color'] = "color-mix(in hsl, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)" should set the property value
@@ -154,6 +156,7 @@ Pass e.style['color'] = "color-mix(in hwb, oklch(100 0.399 336.3) 100%, rgb(0, 0
Pass e.style['color'] = "color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)" should set the property value
Pass e.style['color'] = "color-mix(in hwb, oklab(1 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)" should set the property value
Pass e.style['color'] = "color-mix(in hwb, oklch(1 0.399 336.3) 100%, rgb(0, 0, 0) 0%)" should set the property value
+Fail e.style['color'] = "color-mix(hwb(120deg 10% 20%), hwb(30deg 30% 40%))" should set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10 20 30deg), lch(50 60 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10 20 30deg) 25%, lch(50 60 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in lch, 25% lch(10 20 30deg), lch(50 60 70deg))" should set the property value
@@ -211,6 +214,7 @@ Pass e.style['color'] = "color-mix(in lch, lch(none 20 30deg), lch(50 none 70deg
Pass e.style['color'] = "color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in lch, lch(10 20 30deg / none), lch(50 60 70deg / none))" should set the property value
+Fail e.style['color'] = "color-mix(lch(10 20 30), lch(50 60 70))" should set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(0.1 0.2 30deg), oklch(0.5 0.6 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(0.1 0.2 30deg) 25%, oklch(0.5 0.6 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in oklch, 25% oklch(0.1 0.2 30deg), oklch(0.5 0.6 70deg))" should set the property value
@@ -268,6 +272,7 @@ Pass e.style['color'] = "color-mix(in oklch, oklch(none 0.2 30deg), oklch(0.5 no
Pass e.style['color'] = "color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg))" should set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in oklch, oklch(0.1 0.2 30deg / none), oklch(0.5 0.6 70deg / none))" should set the property value
+Fail e.style['color'] = "color-mix(oklch(0.1 20 30), oklch(0.5 60 70))" should set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10 20 30), lab(50 60 70))" should set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10 20 30) 25%, lab(50 60 70))" should set the property value
Pass e.style['color'] = "color-mix(in lab, 25% lab(10 20 30), lab(50 60 70))" should set the property value
@@ -295,33 +300,35 @@ Pass e.style['color'] = "color-mix(in lab, lab(none 20 30), lab(50 none 70))" sh
Pass e.style['color'] = "color-mix(in lab, lab(10 20 30 / none), lab(50 60 70))" should set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10 20 30 / none), lab(50 60 70 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in lab, lab(10 20 30 / none), lab(50 60 70 / none))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), 25% oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7) 25%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7) 75%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 30%, oklab(0.5 0.6 0.7) 90%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 12.5%, oklab(0.5 0.6 0.7) 37.5%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 0%, oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), 25% oklab(0.5 0.6 0.7 / .8))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8) 25%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8) 75%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 30%, oklab(0.5 0.6 0.7 / .8) 90%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 12.5%, oklab(0.5 0.6 0.7 / .8) 37.5%)" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 0%, oklab(0.5 0.6 0.7 / .8))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(none none none), oklab(none none none))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(none none none), oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(none none none))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 none), oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 none))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(none 0.2 0.3), oklab(0.5 none 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / 0.5))" should set the property value
-Pass e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(lab(10 20 30), lab(50 60 70))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), 25% oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7) 25%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 25%, oklab(0.5 0.6 0.7) 75%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 30%, oklab(0.5 0.6 0.7) 90%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 12.5%, oklab(0.5 0.6 0.7) 37.5%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3) 0%, oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, 25% oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), 25% oklab(0.5 0.6 0.7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4), oklab(0.5 0.6 0.7 / .8) 25%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 25%, oklab(0.5 0.6 0.7 / .8) 75%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 30%, oklab(0.5 0.6 0.7 / .8) 90%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 12.5%, oklab(0.5 0.6 0.7 / .8) 37.5%)" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / .4) 0%, oklab(0.5 0.6 0.7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(none none none), oklab(none none none))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(none none none), oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(none none none))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 none), oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3), oklab(0.5 0.6 none))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(none 0.2 0.3), oklab(0.5 none 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / 0.5))" should set the property value
+Fail e.style['color'] = "color-mix(in oklab, oklab(0.1 0.2 0.3 / none), oklab(0.5 0.6 0.7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(oklab(0.1 0.2 0.3), oklab(0.5 0.6 0.7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, 50% color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3), 50% color(srgb .5 .6 .7))" should set the property value
@@ -350,6 +357,7 @@ Pass e.style['color'] = "color-mix(in srgb, color(srgb none .2 .3), color(srgb .
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3 / none), color(srgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3 / none), color(srgb .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, color(srgb .1 .2 .3 / none), color(srgb .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(srgb .1 .2 .3), color(srgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, 50% color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3), 50% color(srgb-linear .5 .6 .7))" should set the property value
@@ -378,6 +386,7 @@ Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear none .2 .3)
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3 / none), color(srgb-linear .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3 / none), color(srgb-linear .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in srgb-linear, color(srgb-linear .1 .2 .3 / none), color(srgb-linear .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(srgb-linear .1 .2 .3), color(srgb-linear .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in display-p3, 50% color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3), 50% color(display-p3 .5 .6 .7))" should set the property value
@@ -406,6 +415,36 @@ Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 none .2 .3),
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3 / none), color(display-p3 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3 / none), color(display-p3 .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in display-p3, color(display-p3 .1 .2 .3 / none), color(display-p3 .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(display-p3 .1 .2 .3), color(display-p3 .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, 50% color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3), 50% color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 25%, color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7) 25%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 25%, color(display-p3-linear .5 .6 .7) 75%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 30%, color(display-p3-linear .5 .6 .7) 90%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 12.5%, color(display-p3-linear .5 .6 .7) 37.5%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3) 0%, color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .5), color(display-p3-linear .5 .6 .7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 25%, color(display-p3-linear .5 .6 .7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4), color(display-p3-linear .5 .6 .7 / .8) 25%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 25%, color(display-p3-linear .5 .6 .7 / .8) 75%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 30%, color(display-p3-linear .5 .6 .7 / .8) 90%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 12.5%, color(display-p3-linear .5 .6 .7 / .8) 37.5%)" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / .4) 0%, color(display-p3-linear .5 .6 .7 / .8))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear 2 3 4 / 5), color(display-p3-linear 4 6 8 / 10))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear -2 -3 -4), color(display-p3-linear -4 -6 -8))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear -2 -3 -4 / -5), color(display-p3-linear -4 -6 -8 / -10))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear none none none), color(display-p3-linear none none none))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear none none none), color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3), color(display-p3-linear none none none))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 none), color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 none))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear none .2 .3), color(display-p3-linear .5 none .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / none), color(display-p3-linear .5 .6 .7))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / none), color(display-p3-linear .5 .6 .7 / 0.5))" should set the property value
+Fail e.style['color'] = "color-mix(in display-p3-linear, color(display-p3-linear .1 .2 .3 / none), color(display-p3-linear .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(display-p3-linear .1 .2 .3), color(display-p3-linear .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, 50% color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3), 50% color(a98-rgb .5 .6 .7))" should set the property value
@@ -434,6 +473,7 @@ Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb none .2 .3), color(
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3 / none), color(a98-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3 / none), color(a98-rgb .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in a98-rgb, color(a98-rgb .1 .2 .3 / none), color(a98-rgb .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(a98-rgb .1 .2 .3), color(a98-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, 50% color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3), 50% color(prophoto-rgb .5 .6 .7))" should set the property value
@@ -462,6 +502,7 @@ Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb none .2 .
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3 / none), color(prophoto-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3 / none), color(prophoto-rgb .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in prophoto-rgb, color(prophoto-rgb .1 .2 .3 / none), color(prophoto-rgb .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(prophoto-rgb .1 .2 .3), color(prophoto-rgb .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in rec2020, 50% color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3), 50% color(rec2020 .5 .6 .7))" should set the property value
@@ -490,6 +531,7 @@ Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 none .2 .3), color(
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3 / none), color(rec2020 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3 / none), color(rec2020 .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in rec2020, color(rec2020 .1 .2 .3 / none), color(rec2020 .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(rec2020 .1 .2 .3), color(rec2020 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz, 50% color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3), 50% color(xyz .5 .6 .7))" should set the property value
@@ -518,6 +560,7 @@ Pass e.style['color'] = "color-mix(in xyz, color(xyz none .2 .3), color(xyz .5 n
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3 / none), color(xyz .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3 / none), color(xyz .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in xyz, color(xyz .1 .2 .3 / none), color(xyz .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(xyz .1 .2 .3), color(xyz .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, 50% color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3), 50% color(xyz-d50 .5 .6 .7))" should set the property value
@@ -546,6 +589,7 @@ Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 none .2 .3), color(
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3 / none), color(xyz-d50 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3 / none), color(xyz-d50 .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d50, color(xyz-d50 .1 .2 .3 / none), color(xyz-d50 .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(xyz-d50 .1 .2 .3), color(xyz-d50 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, 50% color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3), 50% color(xyz-d65 .5 .6 .7))" should set the property value
@@ -574,6 +618,7 @@ Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 none .2 .3), color(
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3 / none), color(xyz-d65 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3 / none), color(xyz-d65 .5 .6 .7 / 0.5))" should set the property value
Pass e.style['color'] = "color-mix(in xyz-d65, color(xyz-d65 .1 .2 .3 / none), color(xyz-d65 .5 .6 .7 / none))" should set the property value
+Fail e.style['color'] = "color-mix(color(xyz-d65 .1 .2 .3), color(xyz-d65 .5 .6 .7))" should set the property value
Pass e.style['color'] = "color-mix(in srgb, red 50%, blue 50%)" should set the property value
Pass e.style['color'] = "color-mix(in srgb, red 10%, blue 90%)" should set the property value
Pass e.style['color'] = "color-mix(in srgb, red 50%, blue 40%)" should set the property value
diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid.txt
index 25dac6c6a5b..ee189b97d91 100644
--- a/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid.txt
+++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-color/parsing/color-valid.txt
@@ -1,8 +1,8 @@
Harness status: OK
-Found 16 tests
+Found 17 tests
-16 Pass
+17 Pass
Pass e.style['color'] = "currentcolor" should set the property value
Pass e.style['color'] = "transparent" should set the property value
Pass e.style['color'] = "red" should set the property value
@@ -18,4 +18,5 @@ Pass e.style['color'] = "hsla(120, 100%, 50%, 0.25)" should set the property val
Pass e.style['color'] = "rgb(-2, 3, 4)" should set the property value
Pass e.style['color'] = "rgb(100, 200, 300)" should set the property value
Pass e.style['color'] = "rgb(20, 10, 0, -10)" should set the property value
-Pass e.style['color'] = "rgb(100%, 200%, 300%)" should set the property value
\ No newline at end of file
+Pass e.style['color'] = "rgb(100%, 200%, 300%)" should set the property value
+Pass e.style['color'] = "light-dark(black, white)" should set the property value
\ No newline at end of file
diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-color/parsing/color-computed-color-function.html b/Tests/LibWeb/Text/input/wpt-import/css/css-color/parsing/color-computed-color-function.html
index b156909c6e1..c3ff54334ff 100644
--- a/Tests/LibWeb/Text/input/wpt-import/css/css-color/parsing/color-computed-color-function.html
+++ b/Tests/LibWeb/Text/input/wpt-import/css/css-color/parsing/color-computed-color-function.html
@@ -18,7 +18,7 @@
}