New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 671904 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Blocked on:
issue 911156
issue 681424



Sign in to add a comment

Support smooth interpolation for animated registered custom properties

Project Member Reported by alancutter@chromium.org, Dec 7 2016

Issue description

Spec:
https://drafts.css-houdini.org/css-properties-values-api-1/#animation-behavior-of-custom-properties

Example:
<div id="target"></div>
<pre id="output"></pre>
<script>
target.style.color = 'var(--test)';
var animation = target.animate({'--test': ['black', 'green']}, 1000);
animation.currentTime = 500;
output.textContent += 'This should be green: ' + getComputedStyle(target).color + '\n';
CSS.registerProperty({
  name: '--test',
  syntax: '<color>',
  initialValue: 'black',
});
output.textContent += 'This should be rgb(0, 64, 0): ' + getComputedStyle(target).color + '\n';
</script>

Design doc:
https://docs.google.com/document/d/185i5fkIo6ZNul8_xHwQXrqs3idMA5FT_fIjgMIU9mO4/edit#heading=h.j0dicbf33oul
 
Labels: Update-Weekly
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 8 2016

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

commit 3a225dcd053a9b87e56c14d75e42df95fe78ae4b
Author: alancutter <alancutter@chromium.org>
Date: Thu Dec 08 01:39:36 2016

Rename InvalidatableInterpolation cache to be explicitly about value conversion

The cache naming in InvalidatableInterpolation is currently vague about what
is being cached. This patch makes it more explicit that it's caching the
keyframe value conversion.

There are no behavioural changes made by this patch. This is in preparation
for refactoring how InvalidatableInterpolations acquire their
InterpolationTypes.

BUG=671904

Review-Url: https://codereview.chromium.org/2555103002
Cr-Commit-Position: refs/heads/master@{#437120}

[modify] https://crrev.com/3a225dcd053a9b87e56c14d75e42df95fe78ae4b/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/3a225dcd053a9b87e56c14d75e42df95fe78ae4b/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 8 2016

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

commit 3ac8b90fcbda4c6e3ef484140751cd0341b31c48
Author: alancutter <alancutter@chromium.org>
Date: Thu Dec 08 22:51:03 2016

Make InvalidatableInterpolation's InterpolationTypes decided at effect application time

This patch replaces PropertyInterpolationTypesMapping with CSS and SVG
InterpolationTypesMap classes that are provided to InvalidatableInterpolation
objects via the InterpolationEnvironment.

InvalidatableInterpolations are no longer provided with the list of
InterpolationTypes at construction, now they retrieve the list at effect
application time during applyStack().

This is in preparation for supporting smooth animation of registered
custom properties.

BUG=671904

Review-Url: https://codereview.chromium.org/2555923003
Cr-Commit-Position: refs/heads/master@{#437381}

[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/BUILD.gn
[add] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[add] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[add] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/InterpolationTypesMap.h
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/Keyframe.cpp
[delete] https://crrev.com/f32ade75b611e31c6f43914a93c3f7067bcc8cce/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp
[delete] https://crrev.com/f32ade75b611e31c6f43914a93c3f7067bcc8cce/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.h
[add] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.cpp
[add] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.h
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/css/PropertyRegistry.h
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48/third_party/WebKit/Source/core/svg/SVGElement.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 8 2016

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

commit 4899212e500b0738e617349ced2318e018ab317a
Author: alancutter <alancutter@chromium.org>
Date: Thu Dec 08 23:14:54 2016

Revert of Make InvalidatableInterpolation's InterpolationTypes decided at effect application time (patchset #3 id:40001 of https://codereview.chromium.org/2555923003/ )

Reason for revert:
Broke the mac compile bot:
https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac%20Builder%20%28dbg%29/builds/180366/steps/compile/logs/stdio

Original issue's description:
> Make InvalidatableInterpolation's InterpolationTypes decided at effect application time
>
> This patch replaces PropertyInterpolationTypesMapping with CSS and SVG
> InterpolationTypesMap classes that are provided to InvalidatableInterpolation
> objects via the InterpolationEnvironment.
>
> InvalidatableInterpolations are no longer provided with the list of
> InterpolationTypes at construction, now they retrieve the list at effect
> application time during applyStack().
>
> This is in preparation for supporting smooth animation of registered
> custom properties.
>
> BUG=671904
>
> Committed: https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48
> Cr-Commit-Position: refs/heads/master@{#437381}

TBR=ericwilligers@chromium.org,timloh@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=671904

Review-Url: https://codereview.chromium.org/2567453002
Cr-Commit-Position: refs/heads/master@{#437393}

[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/BUILD.gn
[delete] https://crrev.com/e898cc4841ff1de534c30c33f9c76b9df7b3f796/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[delete] https://crrev.com/e898cc4841ff1de534c30c33f9c76b9df7b3f796/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[delete] https://crrev.com/e898cc4841ff1de534c30c33f9c76b9df7b3f796/third_party/WebKit/Source/core/animation/InterpolationTypesMap.h
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/Keyframe.cpp
[add] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp
[add] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.h
[delete] https://crrev.com/e898cc4841ff1de534c30c33f9c76b9df7b3f796/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.cpp
[delete] https://crrev.com/e898cc4841ff1de534c30c33f9c76b9df7b3f796/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.h
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/css/PropertyRegistry.h
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/4899212e500b0738e617349ced2318e018ab317a/third_party/WebKit/Source/core/svg/SVGElement.cpp

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 9 2016

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

commit 5c49d183f4713e682965e831387a1f4bdac32034
Author: alancutter <alancutter@chromium.org>
Date: Fri Dec 09 00:12:38 2016

Fix Revert of Make InvalidatableInterpolation's InterpolationTypes decided at effect application time

The revert in https://codereview.chromium.org/2567453002/ was not successful
at fixing the compile. This is due to old file deletions being added back
again with old content resulting in continued compile failures.

This patch fixes up the replaced file to be more compile friendly.

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=671904
TBR=scottmg@chromium.org

Review-Url: https://codereview.chromium.org/2559393002
Cr-Commit-Position: refs/heads/master@{#437395}

[modify] https://crrev.com/5c49d183f4713e682965e831387a1f4bdac32034/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 9 2016

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

commit dbf9ff76db17cc97436ee43a53ff269af3a45231
Author: alancutter <alancutter@chromium.org>
Date: Fri Dec 09 05:15:54 2016

Make InvalidatableInterpolation's InterpolationTypes decided at effect application time

This patch replaces PropertyInterpolationTypesMapping with CSS and SVG
InterpolationTypesMap classes that are provided to InvalidatableInterpolation
objects via the InterpolationEnvironment.

InvalidatableInterpolations are no longer provided with the list of
InterpolationTypes at construction, now they retrieve the list at effect
application time during applyStack().

This is in preparation for supporting smooth animation of registered
custom properties.

BUG=671904

Committed: https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48
Review-Url: https://codereview.chromium.org/2555923003
Cr-Original-Commit-Position: refs/heads/master@{#437381}
Cr-Commit-Position: refs/heads/master@{#437474}

[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/BUILD.gn
[add] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[add] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[add] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/InterpolationTypesMap.h
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/Keyframe.cpp
[delete] https://crrev.com/075d11d730c97834052a197245c668748a9cda5c/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp
[delete] https://crrev.com/075d11d730c97834052a197245c668748a9cda5c/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.h
[add] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.cpp
[add] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.h
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/css/PropertyRegistry.h
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231/third_party/WebKit/Source/core/svg/SVGElement.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 9 2016

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

commit 5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd
Author: yhirano <yhirano@chromium.org>
Date: Fri Dec 09 06:22:34 2016

Revert of Make InvalidatableInterpolation's InterpolationTypes decided at effect application time (patchset #4 id:60001 of https://codereview.chromium.org/2555923003/ )

Reason for revert:
Speculative revert for mass animation layout tests failures.

Original issue's description:
> Make InvalidatableInterpolation's InterpolationTypes decided at effect application time
>
> This patch replaces PropertyInterpolationTypesMapping with CSS and SVG
> InterpolationTypesMap classes that are provided to InvalidatableInterpolation
> objects via the InterpolationEnvironment.
>
> InvalidatableInterpolations are no longer provided with the list of
> InterpolationTypes at construction, now they retrieve the list at effect
> application time during applyStack().
>
> This is in preparation for supporting smooth animation of registered
> custom properties.
>
> BUG=671904
>
> Committed: https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48
> Committed: https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231
> Cr-Original-Commit-Position: refs/heads/master@{#437381}
> Cr-Commit-Position: refs/heads/master@{#437474}

TBR=ericwilligers@chromium.org,timloh@chromium.org,alancutter@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=671904

Review-Url: https://codereview.chromium.org/2562933002
Cr-Commit-Position: refs/heads/master@{#437483}

[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/BUILD.gn
[delete] https://crrev.com/af6993cee55aaf307b3f73e4e0ca5f05aa0413f4/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[delete] https://crrev.com/af6993cee55aaf307b3f73e4e0ca5f05aa0413f4/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[delete] https://crrev.com/af6993cee55aaf307b3f73e4e0ca5f05aa0413f4/third_party/WebKit/Source/core/animation/InterpolationTypesMap.h
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/Keyframe.cpp
[add] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp
[add] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.h
[delete] https://crrev.com/af6993cee55aaf307b3f73e4e0ca5f05aa0413f4/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.cpp
[delete] https://crrev.com/af6993cee55aaf307b3f73e4e0ca5f05aa0413f4/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.h
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/css/PropertyRegistry.h
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/5af2d95aeeb0683a2d649e98c02fa68df5d6f9fd/third_party/WebKit/Source/core/svg/SVGElement.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Dec 9 2016

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

commit 87ec6842397ca213e3216de27dd2a156ea01a342
Author: alancutter <alancutter@chromium.org>
Date: Fri Dec 09 09:42:25 2016

Make InvalidatableInterpolation's InterpolationTypes decided at effect application time

This patch replaces PropertyInterpolationTypesMapping with CSS and SVG
InterpolationTypesMap classes that are provided to InvalidatableInterpolation
objects via the InterpolationEnvironment.

InvalidatableInterpolations are no longer provided with the list of
InterpolationTypes at construction, now they retrieve the list at effect
application time during applyStack().

This is in preparation for supporting smooth animation of registered
custom properties.

BUG=671904

Committed: https://crrev.com/3ac8b90fcbda4c6e3ef484140751cd0341b31c48
Committed: https://crrev.com/dbf9ff76db17cc97436ee43a53ff269af3a45231
Review-Url: https://codereview.chromium.org/2555923003
Cr-Original-Original-Commit-Position: refs/heads/master@{#437381}
Cr-Original-Commit-Position: refs/heads/master@{#437474}
Cr-Commit-Position: refs/heads/master@{#437504}

[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/BUILD.gn
[add] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[add] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[add] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/InterpolationTypesMap.h
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.h
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/Keyframe.cpp
[delete] https://crrev.com/9083392315f8b2ba599185c6b63af718ac4c6efb/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.cpp
[delete] https://crrev.com/9083392315f8b2ba599185c6b63af718ac4c6efb/third_party/WebKit/Source/core/animation/PropertyInterpolationTypesMapping.h
[add] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.cpp
[add] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/animation/SVGInterpolationTypesMap.h
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/css/PropertyRegistry.h
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/87ec6842397ca213e3216de27dd2a156ea01a342/third_party/WebKit/Source/core/svg/SVGElement.cpp

Labels: -Pri-1 Pri-2
Project Member

Comment 10 by bugdroid1@chromium.org, Dec 22 2016

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

commit d4fc1786d2efd995867dfa22f058211de979c884
Author: alancutter <alancutter@chromium.org>
Date: Thu Dec 22 01:47:17 2016

Rename apply() in CSSInterpolationType subclasses

This patch renames apply() to applyStandardPropertyValue() in all
CSSInterpolationType subclasses and adds an implementation of
apply() to CSSInterpolationType that delegates directly though.
Additionally the the InterpolationEnvironment& parameter has been
replaced with the inner StyleResolverState& as nothing else on the
environment was needed by the affected classes.

This is in preparation to support application of animated values for
registered custom properties.

There are no behavioural changes made by this patch.

BUG=671904

Review-Url: https://codereview.chromium.org/2578043002
Cr-Commit-Position: refs/heads/master@{#440307}

[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSBasicShapeInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSBasicShapeInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSClipInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSClipInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFilterListInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFilterListInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFontSizeInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFontSizeInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFontWeightInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSFontWeightInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageSliceInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSImageSliceInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSLengthListInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSLengthListInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSOffsetRotateInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSOffsetRotateInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSPaintInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSPaintInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSPathInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSPathInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSShadowListInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSShadowListInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTextIndentInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTextIndentInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTranslateInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSTranslateInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp
[modify] https://crrev.com/d4fc1786d2efd995867dfa22f058211de979c884/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.h

Project Member

Comment 11 by bugdroid1@chromium.org, Dec 22 2016

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

commit f97d1f749bc2f466f1fe8872a0799c58b875a988
Author: alancutter <alancutter@chromium.org>
Date: Thu Dec 22 04:01:10 2016

Rename maybeConvertUnderlyingValue() in CSSInterpolationType subclasses

This patch renames maybeConvertUnderlyingValue() to
maybeConvertStandardPropertyUnderlyingValue() in all
CSSInterpolationType subclasses and adds an implementation of
maybeConvertUnderlyingValue() to CSSInterpolationType that passes
directly though.
Additionally the the InterpolationEnvironment& parameter has been
replaced with the inner StyleResolverState& as nothing else on the
environment was needed by the affected classes

This is in preparation to support conversion of underlying values for
registered custom properties.

There are no behavioural changes made by this patch.

BUG=671904

Review-Url: https://codereview.chromium.org/2575763002
Cr-Commit-Position: refs/heads/master@{#440335}

[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSBasicShapeInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSBasicShapeInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSClipInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSClipInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFilterListInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFilterListInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFontSizeInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFontSizeInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFontWeightInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSFontWeightInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageSliceInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSImageSliceInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSLengthListInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSLengthListInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSOffsetRotateInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSOffsetRotateInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSPaintInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSPaintInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSPathInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSPathInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSShadowListInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSShadowListInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTextIndentInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTextIndentInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTranslateInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSTranslateInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp
[modify] https://crrev.com/f97d1f749bc2f466f1fe8872a0799c58b875a988/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.h

Status update:
Have a WIP patch that adds support for animating <color> custom properties: https://codereview.chromium.org/2564793002

Major things still to do:
 - Support all <syntax>es.
 - Defer tokenisation of animated custom property values until they're actually needed.
 - Integrate animated custom property value application with variable resolution ordering. At the moment we apply animated custom property values in a random (hash) order We need to apply them in the order defined by the way they reference each other. The logic for this is already done in CSSVariableResolver, we just need to reuse it somehow.

Also still to do:
 - CSS transitions on registered custom properties.
Project Member

Comment 14 by bugdroid1@chromium.org, Jan 6 2017

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

commit 41d8555158262926a0971b6f40da9988f80e6c55
Author: alancutter <alancutter@chromium.org>
Date: Fri Jan 06 06:11:52 2017

Remove maybeConvertSingle override in CSSValueInterpolationType

This change refactors CSSValueInterpolationType to not override
CSSInterpolationType::maybeConvertSingle() and instead
use the more specific conversion functions as is the norm.

This change is part of supporting smooth interpolation of
registered custom properties. More complex behaviour will be
added to CSSInterpolationType::maybeConvertSingle() which must
be shared with the CSSValueInterpolationType subclass.

There are no changes in behaviour made by this patch.

BUG=671904

Review-Url: https://codereview.chromium.org/2614613002
Cr-Commit-Position: refs/heads/master@{#441885}

[modify] https://crrev.com/41d8555158262926a0971b6f40da9988f80e6c55/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
[modify] https://crrev.com/41d8555158262926a0971b6f40da9988f80e6c55/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 9 2017

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

commit e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01
Author: alancutter <alancutter@chromium.org>
Date: Mon Jan 09 02:54:58 2017

Make CSSInterpolationType::maybeConvertSingle() final

This change removes the ability for subclasses of CSSInterpolationType
to override the behaviour of maybeConvertSingle().
A virtual additiveKeyframeHook() function has been added to support the
previous use case for overriding maybeConvertSingle() of recording
whether a value is additive or not in the NonInterpolableValue.

Making CSSInterpolationType::maybeConvertSingle() final is part of
supporting smooth interpolation on registered custom properties. This
method will change in the near future and it will no longer be
appropriate for subclasses to override its behaviour.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2617453003
Cr-Commit-Position: refs/heads/master@{#442190}

[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.cpp
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.h
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.cpp
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.h
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp
[modify] https://crrev.com/e2a6bbc950788ffc44fa8cddf6d93a284a0fcf01/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.h

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 9 2017

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

commit 3e5152f0ec19bdbc37aa171be11690f86a6ab311
Author: alancutter <alancutter@chromium.org>
Date: Mon Jan 09 07:14:28 2017

Store registered property InterpolationTypes in PropertyRegistration

This change moves the storage of InterpolationTypes for a registered
custom property to its PropertyRegistration object.
This is in preparation for supporting smooth interpolations on
registered custom properties.

There are no behavioural changes made by this patch.

BUG=671904

Review-Url: https://codereview.chromium.org/2618673003
Cr-Commit-Position: refs/heads/master@{#442204}

[modify] https://crrev.com/3e5152f0ec19bdbc37aa171be11690f86a6ab311/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[modify] https://crrev.com/3e5152f0ec19bdbc37aa171be11690f86a6ab311/third_party/WebKit/Source/core/animation/InterpolationType.h
[modify] https://crrev.com/3e5152f0ec19bdbc37aa171be11690f86a6ab311/third_party/WebKit/Source/core/css/PropertyRegistration.cpp
[modify] https://crrev.com/3e5152f0ec19bdbc37aa171be11690f86a6ab311/third_party/WebKit/Source/core/css/PropertyRegistry.cpp
[modify] https://crrev.com/3e5152f0ec19bdbc37aa171be11690f86a6ab311/third_party/WebKit/Source/core/css/PropertyRegistry.h

Project Member

Comment 17 by bugdroid1@chromium.org, Jan 13 2017

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

commit 0ffd401266e9b6afb5e7595fcefd336765ffdc99
Author: alancutter <alancutter@chromium.org>
Date: Fri Jan 13 07:14:04 2017

Move custom property isInheritedProperty storage logic into ComputedStyle

This change is a small refactor that pushes the details of whether
custom property values are stored in StyleInheritedVariables or
StyleNonInheritedVariables down into ComputedStyle. This is in preparation
for animations on registered custom properties and avoids duplicated
logic.

BUG=671904

Review-Url: https://codereview.chromium.org/2630683002
Cr-Commit-Position: refs/heads/master@{#443512}

[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/style/StyleInheritedVariables.cpp
[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/style/StyleInheritedVariables.h
[modify] https://crrev.com/0ffd401266e9b6afb5e7595fcefd336765ffdc99/third_party/WebKit/Source/core/style/StyleNonInheritedVariables.h

Blockedon: 681424
Project Member

Comment 19 by bugdroid1@chromium.org, Jan 17 2017

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

commit 00cd466db74e724f2dda6fe6f9d583a0b964bbc5
Author: alancutter <alancutter@chromium.org>
Date: Tue Jan 17 08:08:10 2017

Add assert that only one of initial or inherit is true in applyValueCSSPropertyVariable()

This assert was removed in https://codereview.chromium.org/2630683002.
This patch adds it back as it's still worthwhile.

BUG=671904

Review-Url: https://codereview.chromium.org/2632123004
Cr-Commit-Position: refs/heads/master@{#444002}

[modify] https://crrev.com/00cd466db74e724f2dda6fe6f9d583a0b964bbc5/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 18 2017

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

commit 271557f792311061db727bd05dcedd282c1c2272
Author: alancutter <alancutter@chromium.org>
Date: Wed Jan 18 04:21:52 2017

Add code path for registered custom properties in CSSInterpolationType

This change adds extra handling logic for registered custom properties
in CSSInterpolationType that deals with their associated CSSValues instead
of just the generic CSSCustomPropertyDeclaration values.

This is in preparation for integration with the typed subclasses
of CSSInterpolationType to produce values in between the specified
animation keyframes.

This patch is a refactor that has no change in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2630503002
Cr-Commit-Position: refs/heads/master@{#444271}

[add] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/LayoutTests/animations/custom-properties/registered-inheritance.html
[add] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/LayoutTests/animations/custom-properties/registered-neutral-keyframe.html
[modify] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
[modify] https://crrev.com/271557f792311061db727bd05dcedd282c1c2272/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h

Project Member

Comment 21 by bugdroid1@chromium.org, Jan 25 2017

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

commit 96bee2c42c8df73523e971850215d29d1c40c15f
Author: alancutter <alancutter@chromium.org>
Date: Wed Jan 25 06:15:31 2017

Add smooth interpolation support for <color> custom properties

This change enables smooth interpolation for animations on
custom properties registered as <color>.

This does not add support for CSS Transitions, only CSS
Animations and Web Animations.
This does not add support for currentcolor for CSS Animations,
supporting this may require further redesigns to style resolution.

BUG=671904

Review-Url: https://codereview.chromium.org/2564793002
Cr-Commit-Position: refs/heads/master@{#445967}

[add] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation-expected.txt
[add] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation.html
[modify] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
[modify] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
[modify] https://crrev.com/96bee2c42c8df73523e971850215d29d1c40c15f/third_party/WebKit/Source/core/css/PropertyRegistration.cpp

Project Member

Comment 22 by bugdroid1@chromium.org, Jan 25 2017

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

commit 14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d
Author: sigbjornf <sigbjornf@opera.com>
Date: Wed Jan 25 10:46:51 2017

Revert of Add smooth interpolation support for <color> custom properties (patchset #5 id:80001 of https://codereview.chromium.org/2564793002/ )

Reason for revert:
Added test is seen failing on the bots, e.g.,

 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20Trusty/builds/22494
 https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.11/builds/15502

Original issue's description:
> Add smooth interpolation support for <color> custom properties
>
> This change enables smooth interpolation for animations on
> custom properties registered as <color>.
>
> This does not add support for CSS Transitions, only CSS
> Animations and Web Animations.
> This does not add support for currentcolor for CSS Animations,
> supporting this may require further redesigns to style resolution.
>
> BUG=671904
>
> Review-Url: https://codereview.chromium.org/2564793002
> Cr-Commit-Position: refs/heads/master@{#445967}
> Committed: https://chromium.googlesource.com/chromium/src/+/96bee2c42c8df73523e971850215d29d1c40c15f

TBR=sashab@chromium.org,alancutter@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=671904

Review-Url: https://codereview.chromium.org/2649103008
Cr-Commit-Position: refs/heads/master@{#445994}

[delete] https://crrev.com/66ac8d1a05c988aa07a1da9e1613c83ccdc304ad/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation-expected.txt
[delete] https://crrev.com/66ac8d1a05c988aa07a1da9e1613c83ccdc304ad/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation.html
[modify] https://crrev.com/14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
[modify] https://crrev.com/14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
[modify] https://crrev.com/14ab21ed2e07a78a0b4af6b8a09ff5de06b6d33d/third_party/WebKit/Source/core/css/PropertyRegistration.cpp

Project Member

Comment 23 by bugdroid1@chromium.org, Jan 28 2017

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

commit b2f66c7a95b2d366e8972efc5acac53d60f4978d
Author: alancutter <alancutter@chromium.org>
Date: Sat Jan 28 09:27:28 2017

Add smooth interpolation support for <color> custom properties

This change enables smooth interpolation for animations on
custom properties registered as <color>.

This does not add support for CSS Transitions, only CSS
Animations and Web Animations.
This does not add support for currentcolor for CSS Animations,
supporting this may require further redesigns to style resolution.

BUG=671904

Review-Url: https://codereview.chromium.org/2564793002
Cr-Original-Commit-Position: refs/heads/master@{#445967}
Committed: https://chromium.googlesource.com/chromium/src/+/96bee2c42c8df73523e971850215d29d1c40c15f
Review-Url: https://codereview.chromium.org/2564793002
Cr-Commit-Position: refs/heads/master@{#446919}

[add] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation-expected.txt
[add] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation.html
[modify] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp
[modify] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.h
[modify] https://crrev.com/b2f66c7a95b2d366e8972efc5acac53d60f4978d/third_party/WebKit/Source/core/css/PropertyRegistration.cpp

Project Member

Comment 24 by bugdroid1@chromium.org, Feb 1 2017

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

commit 9713b4c9d2c1234bfef097f5af3ebc690be43552
Author: alancutter <alancutter@chromium.org>
Date: Wed Feb 01 19:22:36 2017

Add smooth interpolation support for <length> custom properties

This change enables smooth interpolation for animations on
custom properties registered as <length>.

This does not add support for CSS Transitions, only CSS
Animations and Web Animations.

BUG=671904

Review-Url: https://codereview.chromium.org/2658333003
Cr-Commit-Position: refs/heads/master@{#447574}

[add] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/LayoutTests/animations/custom-properties/length-type-interpolation-expected.txt
[add] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/LayoutTests/animations/custom-properties/length-type-interpolation.html
[modify] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
[modify] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.h
[modify] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp
[modify] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.h
[modify] https://crrev.com/9713b4c9d2c1234bfef097f5af3ebc690be43552/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp

Labels: -Update-Weekly Update-Monthly
Currently blocked on CSS transition work, transferring update frequency.
Project Member

Comment 27 by bugdroid1@chromium.org, Feb 20 2017

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

commit bf1d7a3c3dc23860270f9cf267e4722b963500ab
Author: alancutter <alancutter@chromium.org>
Date: Mon Feb 20 05:10:48 2017

Support animating <percentage> and <length-percentage> custom properties

This patch adds support for animating custom properties registered with
the <percentage> or <length-percentage> syntax.
It also fixes a bug in LengthInterpolationFunctions::createCSSValue()
when applying 0% that's unreachable without this patch.

The transition tests fail as transitions on registered custom properties
are pending implementation.

BUG=671904

Review-Url: https://codereview.chromium.org/2701533005
Cr-Commit-Position: refs/heads/master@{#451558}

[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation-expected.txt
[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation.html
[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation-expected.txt
[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-mismatch-no-interpolation.html
[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation-expected.txt
[add] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation.html
[modify] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[modify] https://crrev.com/bf1d7a3c3dc23860270f9cf267e4722b963500ab/third_party/WebKit/Source/core/animation/LengthInterpolationFunctions.cpp

Project Member

Comment 28 by bugdroid1@chromium.org, Feb 20 2017

Project Member

Comment 29 by bugdroid1@chromium.org, Feb 20 2017

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 3 2017

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

commit 08bbd3b3b0a9e991dd042084dd69a11e24d5696d
Author: alancutter <alancutter@chromium.org>
Date: Fri Mar 03 02:45:55 2017

Use PropertyHandle instead of CSSPropertyID to identify CSS Transitions

This patch refactors the way we manage CSS Transition animations to be
based on PropertyHandles instead of CSSPropertyIDs. This is to support
future work in enabling CSS Transitions on custom properties.

CSSPropertyID is unable to distinguish between different custom
properties as they all use the value CSSPropertyVariable while
PropertyHandle stores the AtomicString name of the custom property.

BUG=671904

Review-Url: https://codereview.chromium.org/2719083005
Cr-Commit-Position: refs/heads/master@{#454477}

[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/EffectStack.cpp
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/EffectStack.h
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/ElementAnimations.cpp
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.cpp
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/KeyframeEffectReadOnly.h
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/08bbd3b3b0a9e991dd042084dd69a11e24d5696d/third_party/WebKit/Source/core/animation/css/CSSAnimations.h

Project Member

Comment 31 by bugdroid1@chromium.org, Mar 6 2017

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

commit 095ff780d828ee632f83ed54cfa9caf67179d7f0
Author: alancutter <alancutter@chromium.org>
Date: Mon Mar 06 03:58:28 2017

Split transitions update storage between custom and standard properties

This patch creates a distinction between transition interpolations for
custom vs standard CSS properties.
This is required to support CSS Transitions on registered custom
properties as they need to be calculated and applied in separate phases.

This patch is a refactor and does not change behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2724313002
Cr-Commit-Position: refs/heads/master@{#454821}

[modify] https://crrev.com/095ff780d828ee632f83ed54cfa9caf67179d7f0/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
[modify] https://crrev.com/095ff780d828ee632f83ed54cfa9caf67179d7f0/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/095ff780d828ee632f83ed54cfa9caf67179d7f0/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Project Member

Comment 32 by bugdroid1@chromium.org, Mar 9 2017

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

commit c173bd4d5a794e2f83edf3ff860e98a1199c0510
Author: alancutter <alancutter@chromium.org>
Date: Thu Mar 09 08:51:37 2017

Move standard transition handling logic into separate function

This patch refactors standard CSS property transition calculation to
be isolated to calculateTransitionUpdateForStandardProperty().
This is in preparation for introducing another separate function
called calculateTransitionUpdateForCustomProperty() that enables
CSS Transitions on registered custom properties.

This patch is a refactor and does not change behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2725803006
Cr-Commit-Position: refs/heads/master@{#455702}

[modify] https://crrev.com/c173bd4d5a794e2f83edf3ff860e98a1199c0510/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/c173bd4d5a794e2f83edf3ff860e98a1199c0510/third_party/WebKit/Source/core/animation/css/CSSAnimations.h

Project Member

Comment 33 by bugdroid1@chromium.org, Mar 10 2017

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

commit 3cfa3f891108a0b22cdf04122cbde1f85d9e87e7
Author: alancutter <alancutter@chromium.org>
Date: Fri Mar 10 08:19:17 2017

Add registered custom property wrapping support to CSSAnimatableValueFactory

This patch enables AnimatableValues to be created from registered
custom property CSSValues. This does not enable interpolation of
the registered custom properties via AnimatableValues, this is only
required because AnimatableValues are still used by CSSTransitions
as a way of testing equality between animation keyframes and
computed style values.

This patch is a refactor and does not change behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2723883005
Cr-Commit-Position: refs/heads/master@{#456023}

[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/animation/animatable/AnimatableUnknown.h
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.h
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/3cfa3f891108a0b22cdf04122cbde1f85d9e87e7/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member

Comment 34 by bugdroid1@chromium.org, Mar 15 2017

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

commit 63d7497f58f29caed49491517693b392694411f5
Author: alancutter <alancutter@chromium.org>
Date: Wed Mar 15 03:21:23 2017

Add CSS Transition support to registered custom properties

This patch updates CSSAnimations to support custom/standard property
calculation passes and updates style resolve to compute transitions
on custom properties during applyMatchedPropertiesAndCustomPropertyAnimations().

BUG=671904

Review-Url: https://codereview.chromium.org/2730683002
Cr-Commit-Position: refs/heads/master@{#456978}

[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/angle-type-interpolation-expected.txt
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/LayoutTests/animations/custom-properties/color-type-interpolation-expected.txt
[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/length-percentage-type-interpolation-expected.txt
[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/length-type-interpolation-expected.txt
[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation-expected.txt
[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/percentage-type-interpolation-expected.txt
[delete] https://crrev.com/4a7f14f6f4b33edc609ffda8b980057b71ef75be/third_party/WebKit/LayoutTests/animations/custom-properties/time-type-interpolation-expected.txt
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/Source/core/css/CSSPropertyEquality.cpp
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/Source/core/css/CSSPropertyEquality.h
[modify] https://crrev.com/63d7497f58f29caed49491517693b392694411f5/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Project Member

Comment 35 by bugdroid1@chromium.org, Apr 18 2017

Project Member

Comment 36 by bugdroid1@chromium.org, May 26 2017

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

commit feb42804d1fed874c8cd4c13cad9fddc86bdb32e
Author: alancutter <alancutter@chromium.org>
Date: Fri May 26 06:46:37 2017

Add CSSInterpolationType specific ConversionChecker

This change refactors the CSS ConversionCheckers to inherit from a common
CSSConversionChecker class that removes some of the boiler plate code in
using the InterpolationEnvironment.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2812213002
Cr-Commit-Position: refs/heads/master@{#474948}

[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSBasicShapeInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSBorderImageLengthBoxInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSClipInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSFilterListInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSFontSizeInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSFontVariationSettingsInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSFontWeightInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSImageInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSImageListInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSImageSliceInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSLengthListInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSOffsetRotateInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSPaintInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSPathInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSRotateInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSScaleInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSShadowListInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSSizeListInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSTextIndentInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSTransformInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSTranslateInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp
[modify] https://crrev.com/feb42804d1fed874c8cd4c13cad9fddc86bdb32e/third_party/WebKit/Source/core/animation/LengthUnitsChecker.h

Project Member

Comment 37 by bugdroid1@chromium.org, May 26 2017

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

commit ee6e4b4ccc884117e4e7069b69d953306be9d7b1
Author: alancutter <alancutter@chromium.org>
Date: Fri May 26 08:53:50 2017

Ensure string data is kept alive as long as there are CSSVariableData tokens pointing to it

This change is part of animating registered custom properties.
Animated CSSVariableData objects won't have the same
ownership guarantees as ones owned by CSSValues.

This change removes the assumption that the tokens spliced into a
CSSVariableData during var() resolution will have their backing strings
kept alive somewhere else and instead keeps all necessary string handles
alongside the tokens.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2901213005
Cr-Commit-Position: refs/heads/master@{#474970}

[modify] https://crrev.com/ee6e4b4ccc884117e4e7069b69d953306be9d7b1/third_party/WebKit/Source/core/css/CSSVariableData.cpp
[modify] https://crrev.com/ee6e4b4ccc884117e4e7069b69d953306be9d7b1/third_party/WebKit/Source/core/css/CSSVariableData.h
[modify] https://crrev.com/ee6e4b4ccc884117e4e7069b69d953306be9d7b1/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp
[modify] https://crrev.com/ee6e4b4ccc884117e4e7069b69d953306be9d7b1/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h

Project Member

Comment 38 by bugdroid1@chromium.org, May 29 2017

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

commit 90832f4a196820a9ff74e7464286330bbd255b69
Author: alancutter <alancutter@chromium.org>
Date: Mon May 29 04:54:18 2017

Make InterpolationEnvironment virutal

This change refactors InterpolationEnvironment to be virtual and splits
its members between two subclasses, one for CSS and one for SVG.
This gives us better separation between the two environments and provides
better type checking to make sure the appropriate data member is being
accessed for the context.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2811253003
Cr-Commit-Position: refs/heads/master@{#475288}

[add] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/CSSInterpolationEnvironment.h
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/InterpolationEnvironment.h
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/InvalidatableInterpolation.cpp
[add] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/SVGInterpolationEnvironment.h
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/SVGInterpolationType.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/SVGLengthInterpolationType.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/SVGLengthListInterpolationType.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/SVGTransformListInterpolationType.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/TransitionInterpolation.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/90832f4a196820a9ff74e7464286330bbd255b69/third_party/WebKit/Source/core/svg/SVGElement.cpp

Project Member

Comment 39 by bugdroid1@chromium.org, Jun 1 2017

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

commit 5ef4817127ece8d7ead5fe0ae91b97228b7af578
Author: alancutter <alancutter@chromium.org>
Date: Thu Jun 01 03:51:43 2017

Split active animation interpolation storage between standard and custom properties

This change refactors the storage of active animation interpolations
during a style resolve update by whether it targets a custom property
or a standard property. This makes it consistent with active transition
interpolations.

This change is necessary to process custom property animations separately
from standard properties in future patches.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2831273002
Cr-Commit-Position: refs/heads/master@{#476179}

[modify] https://crrev.com/5ef4817127ece8d7ead5fe0ae91b97228b7af578/third_party/WebKit/Source/core/animation/css/CSSAnimationUpdate.h
[modify] https://crrev.com/5ef4817127ece8d7ead5fe0ae91b97228b7af578/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/5ef4817127ece8d7ead5fe0ae91b97228b7af578/third_party/WebKit/Source/core/animation/css/CSSAnimations.h
[modify] https://crrev.com/5ef4817127ece8d7ead5fe0ae91b97228b7af578/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Project Member

Comment 40 by bugdroid1@chromium.org, Jun 1 2017

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

commit 4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a
Author: alancutter <alancutter@chromium.org>
Date: Thu Jun 01 04:20:27 2017

Make CSSVariableResolver's interface object based instead of static functions

This change removes the static method interface from CSSVariableResolver.
Users of the class now need to instantiate an instance of it to use its
functionality.
This change is in preparation for making variable resolution co-recursive
with registered custom property animation application. The object interface
is required to be able to persist variable resolution state throughout the
recursion.

This patch introduces no changes in behaviour.

BUG=671904

Review-Url: https://codereview.chromium.org/2878853002
Cr-Commit-Position: refs/heads/master@{#476187}

[modify] https://crrev.com/4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp
[modify] https://crrev.com/4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h
[modify] https://crrev.com/4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/4b4a8df39a1778fc1c2d4a9809c4ad976dcf378a/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp

Project Member

Comment 41 by bugdroid1@chromium.org, Jun 26 2017

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

commit 3d20d521335bf355cc2b267f99815ff823d264e5
Author: Alan Cutter <alancutter@chromium.org>
Date: Mon Jun 26 07:35:45 2017

Remove the dependency on CSSInterpolationTypes from PropertyRegistration

The existing construction code for PropertyRegistration required that
every InterpolationType was a CSSInterpolationType so that the
PropertyRegistration object could pass a reference to itself to the
CSSInterpolationTypes via the
CSSInterpolationType::SetCustomPropertyRegistration() method.

This change has the PropertyRegistration pass the reference to itself
to CreateInterpolationTypesForSyntax() so it can pass it in the
constructor parameters for specific CSSInterpolationTypes instead of
using SetCustomPropertyRegistration() to make the association between
the two objects.

This allows CreateInterpolationTypesForSyntax() to return
InterpolationTypes that don't inherit from CSSInterpolationType
removing a prohibitive constraint that's getting in the way of
implementing var() reference cycle detection for animations.

This patch is a refactor and introduces no changes in behaviour.

Bug: 671904
Change-Id: I38f99c769c72711deec16e0330d5c92bbd39b7e8
Reviewed-on: https://chromium-review.googlesource.com/538443
Reviewed-by: Bugs Nash <bugsnash@chromium.org>
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482210}
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSAngleInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSColorInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.cpp
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSLengthInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSResolutionInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSTimeInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/css/PropertyRegistration.cpp
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/css/PropertyRegistration.h
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/css/PropertyRegistry.cpp
[modify] https://crrev.com/3d20d521335bf355cc2b267f99815ff823d264e5/third_party/WebKit/Source/core/css/PropertyRegistry.h

Project Member

Comment 43 by bugdroid1@chromium.org, Jun 27 2017

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

commit 76bc2ad6d662837099d7151b10490e4d8f6a2041
Author: Alan Cutter <alancutter@chromium.org>
Date: Tue Jun 27 05:30:04 2017

Add test coverage for non-interpolable registered custom property syntaxes

This adds test coverage for the following syntaxes:
 - *
 - Identifiers
 - <custom-ident>
 - <url>

Spec: https://drafts.css-houdini.org/css-properties-values-api/#supported-syntax-strings

Bug: 671904
Change-Id: I5e09cad7ad94b24fe7da44e0bcb0e1a6d8cfc33a
Reviewed-on: https://chromium-review.googlesource.com/544400
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Suzy Howlett <suzyh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482542}
[add] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/LayoutTests/animations/custom-properties/custom-ident-type-interpolation.html
[add] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/LayoutTests/animations/custom-properties/ident-type-interpolation.html
[add] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/LayoutTests/animations/custom-properties/token-stream-type-interpolation.html
[add] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/LayoutTests/animations/custom-properties/url-type-interpolation.html
[modify] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/LayoutTests/animations/interpolation/resources/interpolation-test.js
[modify] https://crrev.com/76bc2ad6d662837099d7151b10490e4d8f6a2041/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp

Project Member

Comment 44 by bugdroid1@chromium.org, Jun 27 2017

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

commit 0ebef0f77bd4424a387b23130dd0df300d6811db
Author: Alan Cutter <alancutter@chromium.org>
Date: Tue Jun 27 06:28:11 2017

Support animating <integer> custom properties

This patch adds support for animating custom properties registered with
the <integer> syntax.

Spec: https://drafts.css-houdini.org/css-properties-values-api/#supported-syntax-strings

BUG: 671904
Change-Id: I9696f0da0ab7f0f82af65ad59a9dc415c576b3be
Reviewed-on: https://chromium-review.googlesource.com/544358
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Suzy Howlett <suzyh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482549}
[add] https://crrev.com/0ebef0f77bd4424a387b23130dd0df300d6811db/third_party/WebKit/LayoutTests/animations/custom-properties/integer-type-interpolation.html
[modify] https://crrev.com/0ebef0f77bd4424a387b23130dd0df300d6811db/third_party/WebKit/LayoutTests/animations/custom-properties/number-type-interpolation.html
[modify] https://crrev.com/0ebef0f77bd4424a387b23130dd0df300d6811db/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[modify] https://crrev.com/0ebef0f77bd4424a387b23130dd0df300d6811db/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.cpp
[modify] https://crrev.com/0ebef0f77bd4424a387b23130dd0df300d6811db/third_party/WebKit/Source/core/animation/CSSNumberInterpolationType.h

Project Member

Comment 45 by bugdroid1@chromium.org, Jun 30 2017

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

commit 3d1e46f92368bd0eaab19ab69f78379f79b762c8
Author: Alan Cutter <alancutter@chromium.org>
Date: Fri Jun 30 01:55:36 2017

Replace CSSValueInterpolationType with CSSDefaultInterpolationType

This change alters CSSValueInterpolationType to not inherit from
CSSInterpolationType. The existing super class contained more logic
than necessary for this fallback InterpolationType and resulted in
"work around" hacks to ensure the existing CSSValueInterpolationType
logic played nicely with existing CSSInterpolationType logic.

By moving the code into its own separate InterpolationType
hierarchy these complicated interactions between code are removed
and it becomes much easier to reason about the fallback behaviour.

This patch is a refactor and introduces no changes in behaviour.

Bug: 671904
Change-Id: Id99141accc4ed9cf0cd8a28b288b1434f3ff87d6
Reviewed-on: https://chromium-review.googlesource.com/540998
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Eric Willigers <ericwilligers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483589}
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/BUILD.gn
[add] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/CSSDefaultInterpolationType.cpp
[add] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/CSSDefaultInterpolationType.h
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[delete] https://crrev.com/f8931f56438a4850f36c23452a635ef81f93ab73/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.cpp
[delete] https://crrev.com/f8931f56438a4850f36c23452a635ef81f93ab73/third_party/WebKit/Source/core/animation/CSSValueInterpolationType.h
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/animation/NonInterpolableValue.h
[modify] https://crrev.com/3d1e46f92368bd0eaab19ab69f78379f79b762c8/third_party/WebKit/Source/core/css/CSSSyntaxDescriptor.cpp

Project Member

Comment 46 by bugdroid1@chromium.org, Jul 3 2017

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

commit 55d6aa255db39bf45faa1c5138c10074854c1897
Author: Alan Cutter <alancutter@chromium.org>
Date: Mon Jul 03 08:02:46 2017

Support var() references in registered custom property keyframes

This change enables registered custom property animations to
use var() references in animation keyframes.

This change makes StyleResolver::ApplyAnimatedCustomProperty(),
CSSInterpolationType::MaybeConvertCustomPropertyDeclaration()
and CSSVariableResolver::ResolveCustomPropertyAnimationKeyframe()
co-recursive with each other in order to traverse arbitrary
var() reference dependency chains.

Design doc: https://docs.google.com/document/d/185i5fkIo6ZNul8_xHwQXrqs3idMA5FT_fIjgMIU9mO4/edit#heading=h.a8s8uakorzdf

Bug: 671904
Change-Id: I297cbfe841a90b69985374787991da4c6e9851d4
Reviewed-on: https://chromium-review.googlesource.com/525193
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Suzy Howlett <suzyh@chromium.org>
Reviewed-by: Darren Shen <shend@chromium.org>
Reviewed-by: Bugs Nash <bugsnash@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483961}
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-chain.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-fallback.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-registered-animating.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-registered-any-order.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-registered-transitioning.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-registered.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-unregistered-animating.html
[add] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-to-unregistered.html
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/CSSInterpolationEnvironment.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/CSSInterpolationType.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/EffectStack.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/Interpolation.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/animation/TransitionInterpolation.cpp
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/css/resolver/StyleResolver.h
[modify] https://crrev.com/55d6aa255db39bf45faa1c5138c10074854c1897/third_party/WebKit/Source/core/css/resolver/StyleResolverState.h

Project Member

Comment 47 by bugdroid1@chromium.org, Jul 5 2017

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

commit 4751fa816f898fd0756335dbcea993a76d2f1e8e
Author: Alan Cutter <alancutter@chromium.org>
Date: Wed Jul 05 10:48:40 2017

Handle cyclic var() references in animation keyframes

This change adds a special InterpolationType for when var() cycles
are detected when animating registered custom properties.
If either keyframe contains a var() reference that leads to a
cyclic dependency the property gets unset.

Bug: 671904
Change-Id: Ifbdfa5c3d708d39365f1e7375b5f0e115d693dc4
Reviewed-on: https://chromium-review.googlesource.com/542058
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Suzy Howlett <suzyh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484237}
[add] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/LayoutTests/animations/custom-properties/registered-var-dynamic-dependency.html
[modify] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/animation/BUILD.gn
[modify] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/animation/CSSInterpolationType.cpp
[modify] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/animation/CSSInterpolationTypesMap.cpp
[add] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/animation/CSSVarCycleInterpolationType.cpp
[add] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/animation/CSSVarCycleInterpolationType.h
[modify] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.cpp
[modify] https://crrev.com/4751fa816f898fd0756335dbcea993a76d2f1e8e/third_party/WebKit/Source/core/css/resolver/CSSVariableResolver.h

Cc: andruud@chromium.org smcgruer@chromium.org
I believe that this is done nowadays (at the very least the reproduction in the first comment works - https://output.jsbin.com/gawatat). But cc andruud@ to check that there isn't work remaining on animating registered custom properties that should be tracked here.
This is blocked on animation of transition custom properties.
https://github.com/w3c/csswg-drafts/issues/2854
Basically it's currently impossible to serialise a computed value for an animating registered custom transform property that uses matrix interpolation and percentage translations without invoking layout prior to completing style resolve.
s/transition custom properties/transform custom properties/
Blockedon: 911156

Sign in to add a comment