[wpt-sync] Sync PR 58344 - Fix hit-test z-offset computation for layers without CSS transforms in preserve-3d
Categories
(Core :: Web Painting, task, P4)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox150 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 58344 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/58344
Details from upstream follow.
Perry <perryuwang@gmail.com> wrote:
Fix hit-test z-offset computation for layers without CSS transforms in preserve-3d
When computing z-offset for depth ordering in a preserve-3d context,
IsHitCandidateForDepthOrder was called with local_transform_state, which
is derived from container_transform_state by applying the layer's local
2D paint offset. This caused two problems:
For layers that are not direct children of the transform container
element, CreateLocalTransformState calls Flatten(), which resets
accumulated_transform_ to identity, causing ComputeZOffset to return
0 instead of the correct z value.For direct children, the extra 2D translate operations added to
local_transform_state introduce floating-point rounding differences
compared to sibling layers that went through Flatten(), causing
incorrect depth ordering between coplanar descendants.The correct transform state for computing a layer's z-depth relative to
its containing flattening layer is container_transform_state itself,
since layers without their own CSS transforms are coplanar with the
transform container and their z-depth is fully determined by the
container's accumulated transform.Bug: 464173566
Change-Id: Ib07c40e4239bacc6ff741408ca7d9fcf1332f91b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7442380
Reviewed-by: Philip Rogers \<pdr@chromium.org>
Commit-Queue: Perry \<perryuwang@gmail.com>
Cr-Commit-Position: refs/heads/main@{#1595858}
| Assignee | ||
Updated•2 months ago
|
| Assignee | ||
Comment 1•2 months ago
|
||
| Assignee | ||
Comment 2•2 months ago
|
||
CI Results
Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 909 tests
Status Summary
Firefox
OK : 1[GitHub] 104[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt, Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
PASS : 1[GitHub] 22[Gecko-linux2204-64-wayland-debug, Gecko-linux2204-64-wayland-opt] 5267[Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt] 6035[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview] 6040[Gecko-linux2404-64-debug, Gecko-linux2404-64-opt] 6041[Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt]
FAIL : 211[Gecko-windows11-32-24h2-debug, Gecko-windows11-32-24h2-opt] 220[Gecko-windows11-64-24h2-debug, Gecko-windows11-64-24h2-opt] 221[Gecko-linux2404-64-debug, Gecko-linux2404-64-opt] 226[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview]
Chrome
TIMEOUT: 1
ERROR : 1
Safari
OK : 1
PASS : 1
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
- /css/css-transforms/3d-point-mapping-2-transforminterop.html [wpt.fyi]
- More point mapping through 3D transform hierarchies, hittesting box12):
FAIL[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt],PASS[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt]
- More point mapping through 3D transform hierarchies, hittesting box12):
- /css/css-transforms/3d-point-mapping-origins.html [wpt.fyi]
- Point mapping through 3D transforms with origins, hittesting top-right-blue):
FAIL - Point mapping through 3D transforms with origins, hittesting bottom-left-medium-gray):
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] - Point mapping through 3D transforms with origins, hittesting bottom-left-blue):
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] - Point mapping through 3D transforms with origins, hittesting bottom-right-medium-gray):
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-linux2404-64-debug,Gecko-linux2404-64-opt],PASS[Gecko-windows11-32-24h2-debug,Gecko-windows11-32-24h2-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt]
- Point mapping through 3D transforms with origins, hittesting top-right-blue):
- /css/css-transforms/transform-with-sign-function.html [wpt.fyi]
- skew(calc(sign(1em - 1px) * 2deg), calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to skew(2deg, 2deg):
FAIL - skewX(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to skewX(2deg):
FAIL - skewY(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to skewY(2deg):
FAIL - matrix(calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2)) should be used-value-equivalent to matrix(2, 2, 2, 2, 2, 2):
FAIL - matrix3d(calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2),calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2), calc(sign(1em - 1px) * 2)) should be used-value-equivalent to matrix3d(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2):
FAIL - rotate(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to rotate(2deg):
FAIL - rotateX(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to rotateX(2deg):
FAIL - rotateY(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to rotateY(2deg):
FAIL - rotateZ(calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to rotateZ(2deg):
FAIL - calc(sign(1em - 1px) * 2) calc(sign(1em - 1px) * 2) calc(sign(1em - 1px) * 2) should be used-value-equivalent to 2 2 2:
FAIL - calc(sign(1em - 1px) * 2) calc(sign(1em - 1px) * 2) calc(sign(1em - 1px) * 2) calc(sign(1em - 1px) * 2deg) should be used-value-equivalent to 2 2 2 2deg:
FAIL
- skew(calc(sign(1em - 1px) * 2deg), calc(sign(1em - 1px) * 2deg)) should be used-value-equivalent to skew(2deg, 2deg):
- /css/css-transforms/animation/rotate-interpolation-math-functions-tentative.html [wpt.fyi]
- CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (2) should be [260deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (2) should be [260deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (2) should be [260deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (-1) should be [20deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0) should be [100deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.125) should be [110deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (0.875) should be [170deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (1) should be [180deg]:
FAIL - Web Animations: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (2) should be [260deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Transitions: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (2) should be [260deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Transitions with transition: all: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (2) should be [260deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (-1) should be [20deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0) should be [100deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.125) should be [110deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.875) should be [170deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (1) should be [180deg]:
FAIL - CSS Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (2) should be [260deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (-1) should be [20deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0) should be [100deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.125) should be [110deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (0.875) should be [170deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (1) should be [180deg]:
FAIL - Web Animations: property <rotate> from [calc(sign(20rem - 20px) * 100deg)] to [calc(progress(10rem, 20px, 100px) * 180deg)] at (2) should be [260deg]:
FAIL
- CSS Transitions: property <rotate> from [100deg] to [calc(sign(20rem - 20px) * 180deg)] at (-1) should be [20deg]:
- /css/css-transforms/animation/scale-animation-math-functions-tentative.html [wpt.fyi]
- CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (-1) should be [20]:
FAIL - CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0) should be [100]:
FAIL - CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.125) should be [110]:
FAIL - CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.875) should be [170]:
FAIL - CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (1) should be [180]:
FAIL - CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (2) should be [260]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (-1) should be [20]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0) should be [100]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.125) should be [110]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.875) should be [170]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (1) should be [180]:
FAIL - CSS Transitions with transition: all: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (2) should be [260]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (-1) should be [20]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0) should be [100]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.125) should be [110]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.875) should be [170]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (1) should be [180]:
FAIL - CSS Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (2) should be [260]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (-1) should be [20]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0) should be [100]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.125) should be [110]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (0.875) should be [170]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (1) should be [180]:
FAIL - Web Animations: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (2) should be [260]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (-1) should be [20]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0) should be [100]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.125) should be [110]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.875) should be [170]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (1) should be [180]:
FAIL - CSS Transitions: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (2) should be [260]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (-1) should be [20]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0) should be [100]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.125) should be [110]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.875) should be [170]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (1) should be [180]:
FAIL - CSS Transitions with transition: all: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (2) should be [260]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (-1) should be [20]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0) should be [100]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.125) should be [110]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.875) should be [170]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (1) should be [180]:
FAIL - CSS Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (2) should be [260]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (-1) should be [20]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0) should be [100]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.125) should be [110]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (0.875) should be [170]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (1) should be [180]:
FAIL - Web Animations: property <scale> from [calc(sign(20rem - 20px) * 100)] to [calc(progress(10rem, 20px, 100px) * 180)] at (2) should be [260]:
FAIL
- CSS Transitions: property <scale> from [100] to [calc(sign(20rem - 20px) * 180)] at (-1) should be [20]:
- /css/css-transforms/animation/transform-interpolation-007.html [wpt.fyi]
- CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL - CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (0) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL - CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL - CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL - CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (0) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL - CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)]:
FAIL
- CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)] to [matrix(3, 0, 0, 3, 0, 0)] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)]:
- /css/css-transforms/animation/transform-interpolation-computed-value.html [wpt.fyi]
- Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateX(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateX(50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateZ(50px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translateZ(-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate(0%) and translate(50%) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate(0%) and translate(50%) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate(50%) and translate(100%, 50%) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate(50%) and translate(100%, 50%) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate(0%, 50%) and translate(50%, 100%) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate(0%, 50%) and translate(50%, 100%) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate3d(0,0,-50px) and translateZ(50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate(50px, 0px) and translate(100px, 0px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate(50px, 0px) and translate(100px, 0px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between translate(50px, -50px) and translate(100px, 50px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between translate(50px, -50px) and translate(100px, 50px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between rotate(30deg) and rotate(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between rotateZ(30deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between rotateX(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between rotate(0deg) and rotateX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale(1, 3) and scale(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale(1, 3) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleX(1) and scaleX(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleY(1) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleZ(1) and scaleZ(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scaleZ(1) and scale(2) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale(1, 2) and scale(3, 4) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale3d(1, 2, 3) and scale3d(4, 5, 6) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale3d(1, 2, 3) and scale(4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between scale(1, 2) and scale3d(3, 4, 5) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between skewX(0deg) and skewX(60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between skewX(0deg) and skewX(90deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between skewX(0deg) and skewX(180deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between skew(0deg, 0deg) and skew(60deg, 60deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between skew(45deg, 0deg) and skew(0deg, 45deg) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between perspective(10px) and perspective(2.5px) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between perspective(10px) and perspective(2.5px) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between perspective(10px) and perspective(none) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between perspective(10px) and perspective(none) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between perspective(none) and perspective(none) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between perspective(none) and perspective(none) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between matrix(2, 0, 0, 2, 10, 30) and matrix(4, 0, 0, 6, 14, 10) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between matrix(2, 0, 0, 2, 10, 30) and matrix(4, 0, 0, 6, 14, 10) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between matrix3d(1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 5, 10, 4, 1) and matrix3d(3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, -11, 2, 2, 1) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between matrix3d(1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 5, 10, 4, 1) and matrix3d(3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, -11, 2, 2, 1) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL - Interpolation between matrix3d(1, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1, 8, 0, 0, 0, 1) and matrix3d(1, 0, 0, 5, 0, 1, 0, 8, 0, 0, 1, 14, 0, 0, 0, 1) gives the correct computed value halfway according to computedStyleMap.:
FAIL - Interpolation between matrix3d(1, 0, 0, 3, 0, 1, 0, 2, 0, 0, 1, 8, 0, 0, 0, 1) and matrix3d(1, 0, 0, 5, 0, 1, 0, 8, 0, 0, 1, 14, 0, 0, 0, 1) gives the correct computed value halfway according to computedStyleMap with zoom active.:
FAIL
- Interpolation between translateX(0px) and translateX(50px) gives the correct computed value halfway according to computedStyleMap.:
- /css/css-transforms/animation/transform-interpolation-inline-value.html [wpt.fyi]
- Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.:
FAIL - Interpolation between translateX(50px) and translateY(50px) gives the correct computed value halfway according to commitStyles.:
FAIL - Interpolation between rotate(0deg) and rotateZ(90deg) gives the correct computed value halfway according to commitStyles.:
FAIL - Interpolation between scaleX(2) and scaleY(2) gives the correct computed value halfway according to commitStyles.:
FAIL - Interpolation between scaleX(2) and scaleY(3) gives the correct computed value halfway according to commitStyles.:
FAIL
- Interpolation between translateY(0%) and translateX(50%) gives the correct computed value halfway according to commitStyles.:
- /css/css-transforms/parsing/transform-valid.html [wpt.fyi]
- e.style['transform'] = "scaleX(7)" should set the property value:
FAIL - e.style['transform'] = "scaleX(720%)" should set the property value:
FAIL - e.style['transform'] = "scaleY(-8)" should set the property value:
FAIL - e.style['transform'] = "scaleY(-85%)" should set the property value:
FAIL - e.style['transform'] = "scaleZ(4)" should set the property value:
FAIL - e.style['transform'] = "scaleZ(25%)" should set the property value:
FAIL - e.style['transform'] = "skewX(0)" should set the property value:
FAIL - e.style['transform'] = "skewX(90deg)" should set the property value:
FAIL - e.style['transform'] = "skewY(0)" should set the property value:
FAIL - e.style['transform'] = "skewY(-90deg)" should set the property value:
FAIL
- e.style['transform'] = "scaleX(7)" should set the property value:
- /css/css-transforms/backface-visibility-hidden-003.html [wpt.fyi]:
FAIL - /css/css-transforms/backface-visibility-hidden-004.html [wpt.fyi]:
FAIL - /css/css-transforms/backface-visibility-hidden-animated-002.html [wpt.fyi]:
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt] - /css/css-transforms/skew-test1.html [wpt.fyi]:
FAIL - /css/css-transforms/transform-iframe-scroll-position.html [wpt.fyi]:
FAIL - /css/css-transforms/transform-input-002.html [wpt.fyi]:
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] - /css/css-transforms/transform-input-013.html [wpt.fyi]:
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] - /css/css-transforms/transform-input-019.html [wpt.fyi]:
FAIL[Gecko-android-em-14-x86_64-debug-geckoview,Gecko-android-em-14-x86_64-lite-opt-geckoview,Gecko-android-em-14-x86_64-opt-geckoview],PASS[Gecko-linux2404-64-debug,Gecko-linux2404-64-opt,Gecko-windows11-64-24h2-debug,Gecko-windows11-64-24h2-opt] - /css/css-transforms/transform-table-009.html [wpt.fyi]:
FAIL - /css/css-transforms/transform-table-010.html [wpt.fyi]:
FAIL - /css/css-transforms/transform-table-011.html [wpt.fyi]:
FAIL - /css/css-transforms/animation/translate-animation-on-svg.html [wpt.fyi]:
FAIL
Description
•