If we add the following interpolation test
assertInterpolation({
property: 'transform',
from: 'translate3D(100px, 200px, 300px)',
to: 'none'
}, [
{at: -1, is: 'matrix3d( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , 600 , 1 )'},
{at: 0, is: 'matrix3d( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 100 , 200 , 300 , 1 )'},
{at: 0.25, is: 'matrix3d( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 225 , 1 )'},
{at: 0.75, is: 'matrix3d( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 75 , 1 )'},
{at: 1, is: 'matrix( 1 , 0 , 0 , 1 , 0 , 0 ) '},
{at: 2, is: 'matrix3d( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , -100 , -200 , -300 , 1 )'},
]);
we experience the following failures:
FAIL CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (-1) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 200, 400, -300, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , 600 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , - 300 , 1 ) "
PASS CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 100, 200, 300, 1)]
FAIL CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.25) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 75, 150, 75, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 225 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 75 , 1 ) "
FAIL CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.75) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 25, 50, 225, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 75 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 225 , 1 ) "
PASS CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (1) is [matrix(1, 0, 0, 1, 0, 0)]
FAIL CSS Transitions: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (2) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -100, -200, 600, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , - 300 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , 600 , 1 ) "
FAIL CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (-1) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 200, 400, -300, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , 600 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , - 300 , 1 ) "
PASS CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 100, 200, 300, 1)]
FAIL CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.25) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 75, 150, 75, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 225 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 75 , 1 ) "
FAIL CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.75) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 25, 50, 225, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 75 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 225 , 1 ) "
PASS CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (1) is [matrix(1, 0, 0, 1, 0, 0)]
FAIL CSS Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (2) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -100, -200, 600, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , - 300 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , 600 , 1 ) "
FAIL Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (-1) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 200, 400, -300, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , 600 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 200 , 400 , - 300 , 1 ) "
PASS Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 100, 200, 300, 1)]
FAIL Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.25) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 75, 150, 75, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 225 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 75 , 150 , 75 , 1 ) "
FAIL Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (0.75) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 25, 50, 225, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 75 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 25 , 50 , 225 , 1 ) "
PASS Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (1) is [matrix(1, 0, 0, 1, 0, 0)]
FAIL Web Animations: property <transform> from [translate3D(100px, 200px, 300px)] to [none] at (2) is [matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -100, -200, 600, 1)] assert_equals: expected "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , - 300 , 1 ) " but got "matrix3d ( 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , - 100 , - 200 , 600 , 1 ) "
Ignoring the keyframes at 0 and 1, we see that the Z translate is increasing instead of decreasing
Comment 1 by bugdroid1@chromium.org
, Jan 31 2017