aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Birtles <birtles@gmail.com>2017-08-16 15:01:44 +0900
committerBrian Birtles <birtles@gmail.com>2017-08-16 15:01:44 +0900
commit9ecb0aa7fa890bf872c0310d213efb0587721c7e (patch)
tree9f9a68f29dd91ecf9f3f6f2f63f61c8461903542
parentdc654c991238305d6fc0524173c85f40d7b9e90f (diff)
downloadservo-9ecb0aa7fa890bf872c0310d213efb0587721c7e.tar.gz
servo-9ecb0aa7fa890bf872c0310d213efb0587721c7e.zip
Don't allow interpolating 'fill:none' with 'fill:none'
In SMIL we don't expect the 'none' value of the 'fill' property to be additive and hence the following animation should have no effect: <rect width="100" height="100" y="100" fill="blue"> <animate attributeName="fill" dur="3s" from="red" by="none"/> </rect> Although SMIL doesn't make this entirely clear, [1] says that "by animation" and "from-by animation" may only be used "with attributes that support addition (e.g. most numeric attributes)" and [2] says that <paint>s are "only additive if each value can be converted to an RGB color". As a result, the animation above should have no effect. By extrapolation, animating from 'none' by 'none' should also have no effect: <rect width="100" height="100" y="100" fill="blue"> <animate attributeName="fill" dur="3s" from="none" by="none"/> </rect> However, in Servo's interpolation of <paint>s we special case the interpolation and addition of 'none' such that if both values are 'none' it is allowed. We should disallow this in order to produce the expected behavior and in order to match Gecko's behavior. [1] https://www.w3.org/TR/smil-animation/#AnimFuncValues [2] https://www.w3.org/TR/SVG11/animate.html#AnimationAttributesAndProperties
-rw-r--r--components/style/properties/helpers/animated_properties.mako.rs1
1 files changed, 0 insertions, 1 deletions
diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs
index 64d29252ddc..cfc7947f23d 100644
--- a/components/style/properties/helpers/animated_properties.mako.rs
+++ b/components/style/properties/helpers/animated_properties.mako.rs
@@ -2478,7 +2478,6 @@ impl Animatable for IntermediateSVGPaintKind {
}
// FIXME context values should be interpolable with colors
// Gecko doesn't implement this behavior either.
- (&SVGPaintKind::None, &SVGPaintKind::None) => Ok(SVGPaintKind::None),
(&SVGPaintKind::ContextFill, &SVGPaintKind::ContextFill) => Ok(SVGPaintKind::ContextFill),
(&SVGPaintKind::ContextStroke, &SVGPaintKind::ContextStroke) => Ok(SVGPaintKind::ContextStroke),
_ => Err(())