gecko-dev/dom/smil
Brian Birtles 46d04e2219 Bug 1390384 - Apply SMIL's calcMode=discrete handling to discretely animatable properties in Stylo; r=hiro
In SMIL if a discrete calcMode is used, the keyTimes attribute may be used to
specify the times at which the various animation values are used, overriding the
regular 50% flip behavior (see nsSMILAnimationFunction::ScaleSimpleProgress).

However, this behavior is only applied when the calcMode is known to be
discrete. If the author specifies calcMode="linear" but
attributeType="stroke-linecap" then SMIL should fall back to discrete calcMode
including applying the special keyTimes behavior.

For the Servo backend, Servo_AnimationValues_Interpolate does not return an
error for discretely animated properties so SMIL does not recognize when we fall
back to discrete calcMode. This patch adds a check before performing
interpolation that tests if the property is a discretely interpolable one and,
if it is, returns an error so that we run SMIL's special discrete calcMode
handling.

MozReview-Commit-ID: FOp8XcNbvdu

--HG--
extra : rebase_source : 57ddb333855de111aa585fe894e99937681e5cd2
2017-08-15 14:40:06 +09:00
..
crashtests Bug 1385089 - Set restyle subtree restyle hint if the element animates display style from 'none' to other. r=emilio 2017-08-02 20:01:08 +09:00
test Bug 1390384 - Apply SMIL's calcMode=discrete handling to discretely animatable properties in Stylo; r=hiro 2017-08-15 14:40:06 +09:00
SMILBoolType.cpp
SMILBoolType.h
SMILEnumType.cpp
SMILEnumType.h
SMILIntegerType.cpp
SMILIntegerType.h
SMILStringType.cpp
SMILStringType.h
TimeEvent.cpp
TimeEvent.h
moz.build
nsISMILAttr.h
nsISMILType.h
nsSMILAnimationController.cpp Bug 1368889 - Post animation restyle hint againt pseudo element instead of its parent. r=birtles 2017-06-08 10:22:25 +09:00
nsSMILAnimationController.h Bug 1355348 - Add SMIL restyles in the stylo pretraverse; r=heycam 2017-04-26 13:00:11 +09:00
nsSMILAnimationFunction.cpp
nsSMILAnimationFunction.h
nsSMILCSSProperty.cpp Bug 1381844: Be more explicit about the kind of style context we handle all the time. r=bholley 2017-07-22 18:02:57 +02:00
nsSMILCSSProperty.h Bug 1355349 - Treat properties that can't be animated by the Servo backend as unanimatable; r=hiro 2017-06-02 15:14:43 +09:00
nsSMILCSSValueType.cpp Bug 1390384 - Apply SMIL's calcMode=discrete handling to discretely animatable properties in Stylo; r=hiro 2017-08-15 14:40:06 +09:00
nsSMILCSSValueType.h Bug 1355349 - Call Servo's add and accumulate methods for SMIL animations; r=hiro 2017-06-02 15:18:47 +09:00
nsSMILCompositor.cpp Bug 1355349 - Treat properties that can't be animated by the Servo backend as unanimatable; r=hiro 2017-06-02 15:14:43 +09:00
nsSMILCompositor.h Bug 1315874 - Pass a base style context to nsSMILCSSProperty; r=heycam 2017-04-03 16:49:10 +09:00
nsSMILCompositorTable.h
nsSMILFloatType.cpp
nsSMILFloatType.h
nsSMILInstanceTime.cpp
nsSMILInstanceTime.h
nsSMILInterval.cpp
nsSMILInterval.h
nsSMILKeySpline.cpp
nsSMILKeySpline.h
nsSMILMilestone.h
nsSMILNullType.cpp
nsSMILNullType.h
nsSMILParserUtils.cpp Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
nsSMILParserUtils.h
nsSMILRepeatCount.cpp
nsSMILRepeatCount.h
nsSMILSetAnimationFunction.cpp
nsSMILSetAnimationFunction.h
nsSMILTargetIdentifier.h
nsSMILTimeContainer.cpp
nsSMILTimeContainer.h
nsSMILTimeValue.cpp Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTimeValue.h Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTimeValueSpec.cpp
nsSMILTimeValueSpec.h
nsSMILTimeValueSpecParams.h
nsSMILTimedElement.cpp Bug 1378930 - Part 2: Remove the aName parameter from SchedulerGroup/DocGroup/DispatcherTrait. r=billm 2017-07-26 16:13:35 +08:00
nsSMILTimedElement.h Bug 1374861 - add const keyword where appropriate. r=birtles 2017-07-01 10:55:27 +01:00
nsSMILTypes.h
nsSMILValue.cpp Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
nsSMILValue.h