Diff
Modified: trunk/LayoutTests/ChangeLog (153846 => 153847)
--- trunk/LayoutTests/ChangeLog 2013-08-08 21:17:14 UTC (rev 153846)
+++ trunk/LayoutTests/ChangeLog 2013-08-08 21:19:27 UTC (rev 153847)
@@ -1,3 +1,19 @@
+2013-08-08 Rob Buis <rwlb...@webkit.org>
+
+ ASSERT_NOT_REACHED() touched in WebCore::SVGAnimatedStringAnimator::addAnimatedTypes
+ https://bugs.webkit.org/show_bug.cgi?id=113224
+
+ Reviewed by Dirk Schulze.
+
+ Add a test for animating non-additive attributes in from-by animations
+
+ * svg/animations/non-additive-type-from-by-animation-expected.txt: Added.
+ * svg/animations/non-additive-type-from-by-animation.html: Added.
+ * svg/animations/resources/non-additive-type-from-by-animation.svg: Added.
+ * svg/animations/script-tests/non-additive-type-from-by-animation.js: Added.
+ (sample):
+ (executeTest):
+
2013-08-08 Eric Carlson <eric.carl...@apple.com>
fullscreen/exit-full-screen-iframe.html is failing
Added: trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation-expected.txt (0 => 153847)
--- trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation-expected.txt (rev 0)
+++ trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation-expected.txt 2013-08-08 21:19:27 UTC (rev 153847)
@@ -0,0 +1,62 @@
+SVG 1.1 dynamic animation tests
+
+
+This is a from by animation for all non-additive property types - should have no effect.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS feConvolveMatrix.preserveAlpha.animVal is false
+PASS filter.filterUnits.animVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.animVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.animVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.animVal is ""
+PASS feConvolveMatrix.preserveAlpha.baseVal is false
+PASS filter.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.baseVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.baseVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.baseVal is ""
+PASS feConvolveMatrix.preserveAlpha.animVal is false
+PASS filter.filterUnits.animVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.animVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.animVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.animVal is ""
+PASS feConvolveMatrix.preserveAlpha.baseVal is false
+PASS filter.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.baseVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.baseVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.baseVal is ""
+PASS feConvolveMatrix.preserveAlpha.animVal is false
+PASS filter.filterUnits.animVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.animVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.animVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.animVal is ""
+PASS feConvolveMatrix.preserveAlpha.baseVal is false
+PASS filter.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.baseVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.baseVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.baseVal is ""
+PASS feConvolveMatrix.preserveAlpha.animVal is false
+PASS filter.filterUnits.animVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.animVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.animVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.animVal is ""
+PASS feConvolveMatrix.preserveAlpha.baseVal is false
+PASS filter.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.baseVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.baseVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.baseVal is ""
+PASS feConvolveMatrix.preserveAlpha.animVal is false
+PASS filter.filterUnits.animVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.animVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.animVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.animVal is ""
+PASS feConvolveMatrix.preserveAlpha.baseVal is false
+PASS filter.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS svg.preserveAspectRatio.baseVal.align is SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE
+PASS svg.preserveAspectRatio.baseVal.meetOrSlice is SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET
+PASS feConvolveMatrix.result.baseVal is ""
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation.html (0 => 153847)
--- trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation.html (rev 0)
+++ trunk/LayoutTests/svg/animations/non-additive-type-from-by-animation.html 2013-08-08 21:19:27 UTC (rev 153847)
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<script src=""
+<script src=""
+</head>
+<body _onload_="runSMILTest()">
+<h1>SVG 1.1 dynamic animation tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src=""
+</body>
+</html>
Added: trunk/LayoutTests/svg/animations/resources/non-additive-type-from-by-animation.svg (0 => 153847)
--- trunk/LayoutTests/svg/animations/resources/non-additive-type-from-by-animation.svg (rev 0)
+++ trunk/LayoutTests/svg/animations/resources/non-additive-type-from-by-animation.svg 2013-08-08 21:19:27 UTC (rev 153847)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg id="svg" viewBox="0 0 200 200" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+ <filter id="filter">
+ <feConvolveMatrix id="feConvolveMatrix" kernelMatrix="0 1 0 0 1 0 0 1 0" order="6 6" targetX="5" preserveAlpha="false"/>
+ </filter>
+</defs>
+
+<rect id="rect" y="100" width="100" height="100" fill="black" filter="url(#filter)"/>
+
+<!-- AnimatedBoolean -->
+<animate id="an1" xlink:href="" attributeName="preserveAlpha" begin="0s" dur="4s" from="false" by="true" fill="freeze"/>
+
+<!-- AnimatedEnumeration -->
+<animate xlink:href="" attributeName="filterUnits" begin="0s" dur="4s" from="objectBoundingBox" by="userSpaceOnUse" fill="freeze"/>
+
+<!-- AnimatedPreserveAspectRatio -->
+<animate xlink:href="" attributeName="preserveAspectRatio" begin="0s" dur="4s" from="xMaxYMax meet" by="xMaxYMax slice" fill="freeze"/>
+
+<!-- AnimatedString -->
+<animate xlink:href="" attributeName="result" begin="0s" dur="4s" from="foo" by="test" fill="freeze"/>
+
+</svg>
Added: trunk/LayoutTests/svg/animations/script-tests/non-additive-type-from-by-animation.js (0 => 153847)
--- trunk/LayoutTests/svg/animations/script-tests/non-additive-type-from-by-animation.js (rev 0)
+++ trunk/LayoutTests/svg/animations/script-tests/non-additive-type-from-by-animation.js 2013-08-08 21:19:27 UTC (rev 153847)
@@ -0,0 +1,37 @@
+description("This is a from by animation for all non-additive property types - should have no effect.");
+embedSVGTestCase("resources/non-additive-type-from-by-animation.svg");
+
+// Setup animation test
+function sample() {
+ shouldBe("feConvolveMatrix.preserveAlpha.animVal", "false");
+ shouldBe("filter.filterUnits.animVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
+ shouldBe("svg.preserveAspectRatio.animVal.align", "SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE");
+ shouldBe("svg.preserveAspectRatio.animVal.meetOrSlice", "SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET");
+ shouldBeEqualToString("feConvolveMatrix.result.animVal", "");
+
+ shouldBe("feConvolveMatrix.preserveAlpha.baseVal", "false");
+ shouldBe("filter.filterUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
+ shouldBe("svg.preserveAspectRatio.baseVal.align", "SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE");
+ shouldBe("svg.preserveAspectRatio.baseVal.meetOrSlice", "SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET");
+ shouldBeEqualToString("feConvolveMatrix.result.baseVal", "");
+}
+
+function executeTest() {
+ filter = rootSVGElement.ownerDocument.getElementsByTagName("filter")[0];
+ feConvolveMatrix = rootSVGElement.ownerDocument.getElementsByTagName("feConvolveMatrix")[0];
+ svg = rootSVGElement.ownerDocument.getElementsByTagName("svg")[0];
+
+ const expectedValues = [
+ // [animationId, time, sampleCallback]
+ ["an1", 0.0, sample],
+ ["an1", 1.999, sample],
+ ["an1", 2.001, sample],
+ ["an1", 3.999, sample],
+ ["an1", 4.001, sample]
+ ];
+
+ runAnimationTest(expectedValues);
+}
+
+window.animationStartsImmediately = true;
+var successfullyParsed = true;
Modified: trunk/Source/WebCore/ChangeLog (153846 => 153847)
--- trunk/Source/WebCore/ChangeLog 2013-08-08 21:17:14 UTC (rev 153846)
+++ trunk/Source/WebCore/ChangeLog 2013-08-08 21:19:27 UTC (rev 153847)
@@ -1,3 +1,17 @@
+2013-08-08 Rob Buis <rwlb...@webkit.org>
+
+ ASSERT_NOT_REACHED() touched in WebCore::SVGAnimatedStringAnimator::addAnimatedTypes
+ https://bugs.webkit.org/show_bug.cgi?id=113224
+
+ Reviewed by Dirk Schulze.
+
+ Do not perform from-by animations for non-additive attributes.
+
+ Test: svg/animations/non-additive-type-from-by-animation.html
+
+ * svg/SVGAnimateElement.cpp:
+ (WebCore::SVGAnimateElement::calculateFromAndByValues):
+
2013-08-08 Brent Fulgham <bfulg...@apple.com>
[Windows] Improper Caption Button Displayed to Users
Modified: trunk/Source/WebCore/svg/SVGAnimateElement.cpp (153846 => 153847)
--- trunk/Source/WebCore/svg/SVGAnimateElement.cpp 2013-08-08 21:17:14 UTC (rev 153846)
+++ trunk/Source/WebCore/svg/SVGAnimateElement.cpp 2013-08-08 21:19:27 UTC (rev 153847)
@@ -167,7 +167,7 @@
if (!targetElement)
return false;
- if (animationMode() == ByAnimation && !isAdditive())
+ if (!isAdditive())
return false;
ASSERT(!hasTagName(SVGNames::setTag));