Skip to content

Commit

Permalink
Blending lengths of different types should be allowed outside of the …
Browse files Browse the repository at this point in the history
…[0-1] range

https://bugs.webkit.org/show_bug.cgi?id=223115

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 57 PASS results.

* web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
* web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
* web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-origin-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
* web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
* web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:

Source/WebCore:

* platform/Length.cpp:
(WebCore::blendMixedTypes):

Canonical link: https://commits.webkit.org/235222@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
graouts committed Mar 12, 2021
1 parent 49ca648 commit 4449248
Show file tree
Hide file tree
Showing 18 changed files with 152 additions and 117 deletions.
25 changes: 25 additions & 0 deletions LayoutTests/imported/w3c/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
2021-03-12 Antoine Quint <graouts@webkit.org>

Blending lengths of different types should be allowed outside of the [0-1] range
https://bugs.webkit.org/show_bug.cgi?id=223115

Reviewed by Antti Koivisto.

Add an extra 57 PASS results.

* web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
* web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
* web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/width-composition-expected.txt:
* web-platform-tests/css/css-sizing/animation/width-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/perspective-origin-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/transform-origin-interpolation-expected.txt:
* web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
* web-platform-tests/css/css-transforms/animation/translate-interpolation-expected.txt:
* web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:

2021-03-11 Antoine Quint <graouts@webkit.org>

Fix interpolation of perspective property
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,54 +247,54 @@ 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 (1.5) should be [115px 95% 75 55px]
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]
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got "10 % "
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got ""
PASS CSS Transitions: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)] assert_equals: expected "13px " but got ""
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)] assert_equals: expected "16px " but got ""
PASS CSS Transitions: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got "20px "
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got "10 % "
FAIL CSS Transitions: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got ""
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got ""
PASS CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)] assert_equals: expected "13px " but got ""
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)] assert_equals: expected "16px " but got ""
PASS CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got "20px "
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got "10 % "
FAIL CSS Transitions with transition: all: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got ""
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got ""
PASS CSS Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)] assert_equals: expected "13px " but got ""
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)] assert_equals: expected "16px " but got ""
PASS CSS Animations: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got "20px "
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got "10 % "
FAIL CSS Animations: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got ""
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (-0.3) should be [calc(13% + -6px)] assert_equals: expected "7px " but got ""
PASS Web Animations: property <border-image-width> from [10%] to [20px] at (0) should be [10%]
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (0.3) should be [calc(7% + 6px)] assert_equals: expected "13px " but got ""
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (0.6) should be [calc(4% + 12px)] assert_equals: expected "16px " but got ""
PASS Web Animations: property <border-image-width> from [10%] to [20px] at (1) should be [calc(0% + 20px)]
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got "20px "
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got "10px "
FAIL Web Animations: property <border-image-width> from [10%] to [20px] at (1.5) should be [calc(-5% + 30px)] assert_equals: expected "25px " but got ""
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got ""
PASS CSS Transitions: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)] assert_equals: expected "13px " but got ""
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)] assert_equals: expected "16px " but got ""
PASS CSS Transitions: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got "20 % "
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got "10px "
FAIL CSS Transitions: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got ""
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got ""
PASS CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)] assert_equals: expected "13px " but got ""
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)] assert_equals: expected "16px " but got ""
PASS CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got "20 % "
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got "10px "
FAIL CSS Transitions with transition: all: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got ""
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got ""
PASS CSS Animations: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)] assert_equals: expected "13px " but got ""
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)] assert_equals: expected "16px " but got ""
PASS CSS Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got "20 % "
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got "10px "
FAIL CSS Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got ""
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (-0.3) should be [calc(13px + -6%)] assert_equals: expected "7px " but got ""
PASS Web Animations: property <border-image-width> from [10px] to [20%] at (0) should be [calc(0% + 10px)]
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (0.3) should be [calc(7px + 6%)] assert_equals: expected "13px " but got ""
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (0.6) should be [calc(4px + 12%)] assert_equals: expected "16px " but got ""
PASS Web Animations: property <border-image-width> from [10px] to [20%] at (1) should be [20%]
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got "20 % "
FAIL Web Animations: property <border-image-width> from [10px] to [20%] at (1.5) should be [calc(-5px + 30%)] assert_equals: expected "25px " but got ""
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]
PASS CSS Transitions: property <border-image-width> from [10px auto auto 20] to [110px auto auto 120] at (0.3) should be [ 40px auto auto 50]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,30 +143,30 @@ PASS Web Animations: property <border-top-left-radius> from [10px] to [50px] at
PASS Web Animations: property <border-top-left-radius> from [10px] to [50px] at (0.6) should be [34px]
PASS Web Animations: property <border-top-left-radius> from [10px] to [50px] at (1) should be [50px]
PASS Web Animations: property <border-top-left-radius> from [10px] to [50px] at (1.5) should be [70px]
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "10px "
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "calc ( ( 10px * 1.3 ) + ( 100 % * - 0.3 ) ) "
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (0) should be [calc(10px + 0%)] assert_equals: expected "calc ( 0 % + 10px ) " but got "10px "
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (0.3) should be [calc(7px + 30%)] assert_equals: expected "calc ( 30 % + 7px ) " but got "calc ( ( 10px * 0.7 ) + ( 100 % * 0.3 ) ) "
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (0.6) should be [calc(4px + 60%)] assert_equals: expected "calc ( 60 % + 4px ) " but got "calc ( ( 10px * 0.4 ) + ( 100 % * 0.6 ) ) "
PASS CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (1) should be [100%]
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "100 % "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "10px "
FAIL CSS Transitions: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "calc ( ( 10px * - 0.5 ) + ( 100 % * 1.5 ) ) "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "calc ( ( 10px * 1.3 ) + ( 100 % * - 0.3 ) ) "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (0) should be [calc(10px + 0%)] assert_equals: expected "calc ( 0 % + 10px ) " but got "10px "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (0.3) should be [calc(7px + 30%)] assert_equals: expected "calc ( 30 % + 7px ) " but got "calc ( ( 10px * 0.7 ) + ( 100 % * 0.3 ) ) "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (0.6) should be [calc(4px + 60%)] assert_equals: expected "calc ( 60 % + 4px ) " but got "calc ( ( 10px * 0.4 ) + ( 100 % * 0.6 ) ) "
PASS CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (1) should be [100%]
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "100 % "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "10px "
FAIL CSS Transitions with transition: all: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "calc ( ( 10px * - 0.5 ) + ( 100 % * 1.5 ) ) "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "calc ( ( 10px * 1.3 ) + ( 100 % * - 0.3 ) ) "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (0) should be [calc(10px + 0%)] assert_equals: expected "calc ( 0 % + 10px ) " but got "10px "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (0.3) should be [calc(7px + 30%)] assert_equals: expected "calc ( 30 % + 7px ) " but got "calc ( ( 10px * 0.7 ) + ( 100 % * 0.3 ) ) "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (0.6) should be [calc(4px + 60%)] assert_equals: expected "calc ( 60 % + 4px ) " but got "calc ( ( 10px * 0.4 ) + ( 100 % * 0.6 ) ) "
PASS CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (1) should be [100%]
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "100 % "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "10px "
FAIL CSS Animations: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "calc ( ( 10px * - 0.5 ) + ( 100 % * 1.5 ) ) "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (-0.3) should be [calc(13px + -30%)] assert_equals: expected "calc ( - 30 % + 13px ) " but got "calc ( ( 10px * 1.3 ) + ( 100 % * - 0.3 ) ) "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (0) should be [calc(10px + 0%)] assert_equals: expected "calc ( 0 % + 10px ) " but got "10px "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (0.3) should be [calc(7px + 30%)] assert_equals: expected "calc ( 30 % + 7px ) " but got "calc ( ( 10px * 0.7 ) + ( 100 % * 0.3 ) ) "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (0.6) should be [calc(4px + 60%)] assert_equals: expected "calc ( 60 % + 4px ) " but got "calc ( ( 10px * 0.4 ) + ( 100 % * 0.6 ) ) "
PASS Web Animations: property <border-top-left-radius> from [10px] to [100%] at (1) should be [100%]
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "100 % "
FAIL Web Animations: property <border-top-left-radius> from [10px] to [100%] at (1.5) should be [calc(-5px + 150%)] assert_equals: expected "calc ( 150 % - 5px ) " but got "calc ( ( 10px * - 0.5 ) + ( 100 % * 1.5 ) ) "
FAIL CSS Transitions: property <border-top-left-radius> from [20px] to [10px 30px] at (-2) should be [40px 0px] assert_equals: expected "0px " but got "40px 0px "
PASS CSS Transitions: property <border-top-left-radius> from [20px] to [10px 30px] at (-0.3) should be [23px 17px]
PASS CSS Transitions: property <border-top-left-radius> from [20px] to [10px 30px] at (0) should be [20px]
Expand Down
Loading

0 comments on commit 4449248

Please sign in to comment.