Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(976)

Issue 863863004: Implemented additive animations for length (Closed)

Created:
5 years, 10 months ago by caley
Modified:
5 years, 10 months ago
CC:
blink-reviews, ed+blinkwatch_opera.com, shans, rjwright, Mike Lawther (Google), blink-reviews-animation_chromium.org, blink-reviews-css, rwlbuis, dglazkov+blink, dstockwell, Timothy Loh, apavlov+blink_chromium.org, darktears, Steve Block, Eric Willigers
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Implemented additive animations for length Interpolations now store start and end composite operations and an underlying fraction. To support addition, StyleInterpolation subclasses should implement a constructor that sets the composite modes, and override the new apply method which takes an InterpolableValue to convert and apply as an argument. AnimationStack::copyToActiveInterpolationMap now assembles an InterpolationPipeline for each CSS property, which is a linked list of InterpolationPipelineStages, each containing an Interpolation. In StyleResolver::applyAnimatedProperties, each stage of the additive pipeline is evaluated, their results added together, and the result applied to the LayoutStyle. BUG=437696

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : More comprehensive non-negative length layout tests #

Total comments: 8

Patch Set 7 : Fixed layout test #

Patch Set 8 : Replaced pipeline linked list with vector #

Patch Set 9 : Fixed AnimationStackTest #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+759 lines, -487 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
A + LayoutTests/virtual/stable/web-animations-api/add-keyframes-unsupported.html View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
A LayoutTests/web-animations-api/animations-additive-length.html View 1 2 3 4 5 6 1 chunk +249 lines, -0 lines 0 comments Download
A LayoutTests/web-animations-api/animations-additive-length-expected.txt View 1 2 3 4 5 6 1 chunk +175 lines, -0 lines 0 comments Download
D LayoutTests/web-animations-api/w3c/add-keyframes.html View 1 2 3 4 1 chunk +0 lines, -33 lines 0 comments Download
M Source/core/animation/AnimationStack.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M Source/core/animation/AnimationStack.cpp View 1 2 3 4 5 6 7 3 chunks +18 lines, -6 lines 1 comment Download
M Source/core/animation/AnimationStackTest.cpp View 1 2 3 4 5 6 7 8 4 chunks +12 lines, -12 lines 0 comments Download
M Source/core/animation/ConstantStyleInterpolation.h View 2 chunks +10 lines, -0 lines 0 comments Download
M Source/core/animation/EffectInput.cpp View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/animation/InterpolableValue.h View 1 5 chunks +12 lines, -10 lines 0 comments Download
M Source/core/animation/InterpolableValue.cpp View 1 1 chunk +21 lines, -0 lines 0 comments Download
M Source/core/animation/Interpolation.h View 1 2 3 4 5 6 7 4 chunks +22 lines, -0 lines 1 comment Download
M Source/core/animation/Interpolation.cpp View 1 2 3 4 5 6 7 3 chunks +31 lines, -0 lines 0 comments Download
A Source/core/animation/InterpolationFactory.h View 1 chunk +38 lines, -0 lines 0 comments Download
A + Source/core/animation/InterpolationFactory.cpp View 1 2 3 4 5 6 9 chunks +61 lines, -100 lines 0 comments Download
M Source/core/animation/KeyframeEffectModel.cpp View 1 chunk +0 lines, -2 lines 0 comments Download
M Source/core/animation/LengthStyleInterpolation.h View 1 2 3 4 2 chunks +11 lines, -0 lines 0 comments Download
M Source/core/animation/LengthStyleInterpolation.cpp View 1 2 3 4 1 chunk +5 lines, -0 lines 0 comments Download
M Source/core/animation/StringKeyframe.h View 1 2 3 4 5 6 1 chunk +0 lines, -2 lines 0 comments Download
M Source/core/animation/StringKeyframe.cpp View 1 2 3 4 5 6 2 chunks +3 lines, -298 lines 0 comments Download
M Source/core/animation/StyleInterpolation.h View 1 2 3 4 5 6 2 chunks +9 lines, -0 lines 0 comments Download
M Source/core/animation/css/CSSAnimationUpdate.h View 1 2 3 4 5 6 7 2 chunks +7 lines, -7 lines 0 comments Download
M Source/core/animation/css/CSSAnimations.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/animation/css/CSSAnimations.cpp View 1 2 3 4 3 chunks +3 lines, -3 lines 0 comments Download
M Source/core/core.gypi View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/css/resolver/StyleResolver.h View 1 2 3 4 5 6 7 3 chunks +2 lines, -2 lines 0 comments Download
M Source/core/css/resolver/StyleResolver.cpp View 1 2 3 4 5 6 7 4 chunks +61 lines, -5 lines 3 comments Download

Messages

Total messages: 7 (1 generated)
caley
5 years, 10 months ago (2015-02-11 09:24:40 UTC) #2
alancutter (OOO until 2018)
https://codereview.chromium.org/863863004/diff/100001/LayoutTests/web-animations-api/animations-additive-width.html File LayoutTests/web-animations-api/animations-additive-width.html (right): https://codereview.chromium.org/863863004/diff/100001/LayoutTests/web-animations-api/animations-additive-width.html#newcode256 LayoutTests/web-animations-api/animations-additive-width.html:256: */ Uncomment and expect failure. https://codereview.chromium.org/863863004/diff/100001/Source/core/animation/Interpolation.cpp File Source/core/animation/Interpolation.cpp (right): ...
5 years, 10 months ago (2015-02-12 05:55:45 UTC) #3
alancutter (OOO until 2018)
Thanks for the extra dedication to your project George! Just to be clear there's no ...
5 years, 10 months ago (2015-02-17 03:50:56 UTC) #4
alancutter (OOO until 2018)
https://codereview.chromium.org/863863004/diff/160001/Source/core/css/resolver/StyleResolver.cpp File Source/core/css/resolver/StyleResolver.cpp (right): https://codereview.chromium.org/863863004/diff/160001/Source/core/css/resolver/StyleResolver.cpp#newcode1103 Source/core/css/resolver/StyleResolver.cpp:1103: multipliedValue = underlyingInterpolation->cachedValue().clone(); On 2015/02/17 03:50:56, alancutter wrote: > ...
5 years, 10 months ago (2015-02-17 04:08:37 UTC) #5
alancutter (OOO until 2018)
After discussions with Shane and Doug there's a number of refactors to this approach that ...
5 years, 10 months ago (2015-02-17 05:03:04 UTC) #6
caley
5 years, 10 months ago (2015-02-17 06:07:13 UTC) #7
On 2015/02/17 05:03:04, alancutter wrote:
> After discussions with Shane and Doug there's a number of refactors to this
> approach that we want to make. Namely removing InterpolationFactory and
instead
> creating the InterpolableValue from the underlying CSS value directly via the
> first Interpolation in the apply list and moving all the additive logic out of
> the StyleResolver.
> 
> It's probably best if we take over this patch now given the complexity of
these
> changes. Thanks a ton for working on this in your own free time nonetheless!

Alright, no problem!

Powered by Google App Engine
This is Rietveld 408576698