LibWeb: Improve interpolation of mixed percentage-dimension values

If we are interpolating between a dimension and a percentage value and
the dimension component is 0, we now return a percentage value rather
than a `calc()` value.
This commit is contained in:
Tim Ledbetter
2025-09-09 15:49:31 +01:00
committed by Sam Atkins
parent 01be928a16
commit 9c062d9d4e
Notes: github-actions[bot] 2025-09-10 16:01:26 +00:00
5 changed files with 138 additions and 104 deletions

View File

@@ -2,8 +2,7 @@ Harness status: OK
Found 558 tests
550 Pass
8 Fail
558 Pass
Pass CSS Transitions: property <border-image-width> from neutral to [20px] at (-0.3) should be [7px]
Pass CSS Transitions: property <border-image-width> from neutral to [20px] at (0) should be [10px]
Pass CSS Transitions: property <border-image-width> from neutral to [20px] at (0.3) should be [13px]
@@ -281,25 +280,25 @@ Pass Web Animations: property <border-image-width> from [10px 20% 30 40px] to [8
Pass Web Animations: property <border-image-width> from [10px 20% 30 40px] to [80px 70% 60 50px] at (5) should be [360px 270% 180 90px]
Pass Web Animations: property <border-image-width> from [10px 20% 30 40px] to [80px 70% 60 50px] at (10) should be [710px 520% 330 140px]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)]
Fail CSS Transitions: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
Pass CSS Transitions: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)]
Fail CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)]
Fail CSS Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
Pass CSS Animations: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)]
Pass Web Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)]
Fail Web Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass Web Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
Pass Web Animations: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)]
Pass Web Animations: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)]
Pass Web Animations: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
@@ -308,25 +307,25 @@ Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (-0.
Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)]
Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)]
Fail CSS Transitions: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Transitions: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)]
Fail CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)]
Fail CSS Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass CSS Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)]
Fail Web Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
Pass Web Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)]
Pass CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (-0.3) should be [ 0px auto auto 0]
Pass CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0) should be [ 10px auto auto 20]