New issue
Advanced search Search tips

Issue 918643 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 918952



Sign in to add a comment

Expand WPT test coverage for interpolation of transform lists.

Project Member Reported by kevers@chromium.org, Jan 2

Issue description


Existing tests:
* Mismatched lengths, from shorter, prefix match
* Mismatched lengths, to shorter, prefix match
* None → None
* None → Something
* Something → None
* Perfect match
* Matches on Primitives
* Matches on rotation vector
* Matches due to 0deg
* Common prefix
* Complete mismatch except length
* Complete mismatch including length

These tests cover extending the shorter|missing list, and matrix fallback on the entire list, but do not fully cover a mix of pairwise and matrix interpolation.

Proposed additions:
* Mismatched lengths, from shorter, partial match
  e.g. rotate(0deg) scaleX(1) -> rotate(360deg) translateX(0px) ...
* Mismatched lengths, to shorter, partial match
* Mismatched lengths, from shorter, partial match on primitive
  e.g. scaleX rotate -> scaleY translate ...
* Mismatched lengths, to shorter, partial match on primitive
* Same length, common prefix by primitive
  e.g. scaleX ... -> scaleY ...

Some care needed to ensure that the partial pairwise and matrix fallback paths lead to different interpolations.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e6659f6b96dc20415e403be065a927a1c7668c2

commit 6e6659f6b96dc20415e403be065a927a1c7668c2
Author: Kevin Ellis <kevers@chromium.org>
Date: Thu Jan 03 14:46:22 2019

Augment set of WPT tests for interpolation of transform lists.

This patch improves test coverage for the interpolation of transform lists. Specifically, the new tests cover:
* mismatched list lengths with a partial prefix match
* mix of exact and primitive (e.g. scaleX & scaleY --> scale) matches

These new tests fail in Chrome without the patch (https://chromium-review.googlesource.com/c/chromium/src/+/1372025) to implement the algorithm outlined in transforms spec (https://drafts.csswg.org/css-transforms-1/#interpolation-of-transforms), but pass when tested in Firefox version 64.0.


Bug:  918643 

Change-Id: I65bfe5b3c13c2fb33b3d2b926dc153135b140a63
Reviewed-on: https://chromium-review.googlesource.com/c/1393460
Reviewed-by: Ian Vollick <vollick@chromium.org>
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619635}
[modify] https://crrev.com/6e6659f6b96dc20415e403be065a927a1c7668c2/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/list-interpolation-expected.txt
[modify] https://crrev.com/6e6659f6b96dc20415e403be065a927a1c7668c2/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/list-interpolation.html

Status: Started (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3038d348f38e5917fc7bea5a7bcc785f51f8d477

commit 3038d348f38e5917fc7bea5a7bcc785f51f8d477
Author: Kevin Ellis <kevers@chromium.org>
Date: Thu Jan 03 16:59:38 2019

Update transform list interpolation.

Update interpolation of transform lists to reflect recent changes to the spec (https://drafts.csswg.org/css-transforms/#interpolation-of-transforms).

* If the transform lists are of different lengths, but the transformations are pairwise compatible to the end of the shorter list, extend the shorter list with corresponding identity transforms.
* If the transform lists are incompatible, perform pairwise transforms for compatible entities at the start of the list and fallback to matrix interpolation for the remaining transformations.
* Fix discrete fallback.

Bug:  860391 ,  267348 ,  918643 

Change-Id: I8b2d770e354f3d77dad00e088a2eafe6c1ad655a
Reviewed-on: https://chromium-review.googlesource.com/c/1372025
Commit-Queue: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Ian Vollick <vollick@chromium.org>
Reviewed-by: Stephen McGruer <smcgruer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619661}
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/cc/animation/transform_operations.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/cc/animation/transform_operations.h
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/cc/animation/transform_operations_unittest.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/interpolated_transform_operation.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/interpolated_transform_operation.h
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/matrix_3d_transform_operation.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/matrix_transform_operation.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/transform_operations.cc
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/renderer/platform/transforms/transform_operations.h
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/composition/transform-composition.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/interpolation/transform-interpolation-003.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/interpolation/transform-interpolation-004.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/interpolation/webkit-transform-interpolation-003.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/interpolation/webkit-transform-interpolation-004.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/rotate-transform-equivalent.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/animations/transform-post-multiplication.html
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/external/wpt/css/css-transforms/animation/list-interpolation-expected.txt
[modify] https://crrev.com/3038d348f38e5917fc7bea5a7bcc785f51f8d477/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt

Status: Fixed (was: Started)
Blocking: 918952

Sign in to add a comment