SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes...
authorzherczeg@webkit.org <zherczeg@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jul 2010 08:08:49 +0000 (08:08 +0000)
committerzherczeg@webkit.org <zherczeg@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jul 2010 08:08:49 +0000 (08:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=42244

Reviewed by Nikolas Zimmermann.

WebCore:

Implementing svgAttributeChanged for SVGFEOffsetElement object.

Tests: svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html
       svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html
       svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html
       svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html
       svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html
       svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html

* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::svgAttributeChanged):
* svg/SVGFEOffsetElement.h:

LayoutTests:

* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html: Added.
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dx-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dy-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-in-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dx-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dy-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-in-prop.js: Added.
(executeTest):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64192 268f45cc-cd09-0410-ab3c-d52691b4dbfc

34 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.txt [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dx-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dy-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-in-attr.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dx-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dy-prop.js [new file with mode: 0644]
LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-in-prop.js [new file with mode: 0644]
WebCore/ChangeLog
WebCore/svg/SVGFEOffsetElement.cpp
WebCore/svg/SVGFEOffsetElement.h

index 7e0d973..4e476f4 100644 (file)
@@ -5,6 +5,50 @@
         SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
         https://bugs.webkit.org/show_bug.cgi?id=42244
 
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html: Added.
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dx-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dy-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-in-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dx-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dy-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-in-prop.js: Added.
+        (executeTest):
+
+2010-07-28  Zoltan Herczeg  <zherczeg@webkit.org>
+
+        Reviewed by Nikolas Zimmermann.
+
+        SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+        https://bugs.webkit.org/show_bug.cgi?id=42244
+
         * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.checksum: Added.
         * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr-expected.png: Added.
         * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-in-attr-expected.checksum: Added.
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.checksum
new file mode 100644 (file)
index 0000000..0a19bdb
--- /dev/null
@@ -0,0 +1 @@
+34021f6e974f771a258399f50da034c2
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png
new file mode 100644 (file)
index 0000000..0316ac0
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.checksum
new file mode 100644 (file)
index 0000000..4daa300
--- /dev/null
@@ -0,0 +1 @@
+2f8fa509920b95f08d425a08cb4e82ac
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png
new file mode 100644 (file)
index 0000000..41a42af
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.checksum
new file mode 100644 (file)
index 0000000..8a45c72
--- /dev/null
@@ -0,0 +1 @@
+cb10b7090057687a46f7e779b529757a
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png
new file mode 100644 (file)
index 0000000..6e6615a
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.checksum
new file mode 100644 (file)
index 0000000..4b10f0b
--- /dev/null
@@ -0,0 +1 @@
+ffd5f755a9850f2f562a519d11d293d4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png
new file mode 100644 (file)
index 0000000..15fe79f
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.checksum
new file mode 100644 (file)
index 0000000..8decd0d
--- /dev/null
@@ -0,0 +1 @@
+7181b70abaaf94f213608bd56f486b72
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png
new file mode 100644 (file)
index 0000000..9eb88a3
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.checksum
new file mode 100644 (file)
index 0000000..960db0a
--- /dev/null
@@ -0,0 +1 @@
+0eed2ba256240bf22c3628eb5ca4ce46
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png
new file mode 100644 (file)
index 0000000..025984f
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr-expected.txt
new file mode 100644 (file)
index 0000000..d168a3b
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'dx' attribute of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.getAttribute('dx') is "50"
+PASS offsetElement.getAttribute('dx') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html
new file mode 100644 (file)
index 0000000..d09fef5
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-dom-dx-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr-expected.txt
new file mode 100644 (file)
index 0000000..c968ee1
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'dy' attribute of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.getAttribute('dy') is "50"
+PASS offsetElement.getAttribute('dy') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html
new file mode 100644 (file)
index 0000000..5c2e340
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-dom-dy-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr-expected.txt
new file mode 100644 (file)
index 0000000..1abe084
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' attribute of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.getAttribute('in') is "blur"
+PASS offsetElement.getAttribute('in') is "SourceGraphic"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html
new file mode 100644 (file)
index 0000000..3351d98
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-dom-in-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop-expected.txt
new file mode 100644 (file)
index 0000000..d3ccd54
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'dx' property of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.dx.baseVal is 50
+PASS offsetElement.dx.baseVal is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html
new file mode 100644 (file)
index 0000000..706644e
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-svgdom-dx-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop-expected.txt
new file mode 100644 (file)
index 0000000..0eb09ae
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'dy' property of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.dy.baseVal is 50
+PASS offsetElement.dy.baseVal is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html
new file mode 100644 (file)
index 0000000..9776690
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-svgdom-dy-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop-expected.txt
new file mode 100644 (file)
index 0000000..a4a78b3
--- /dev/null
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' property of the SVGFEOffsetElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS offsetElement.in1.baseVal is "blur"
+PASS offsetElement.in1.baseVal is "SourceGraphic"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html
new file mode 100644 (file)
index 0000000..74570bb
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
+<script src="resources/SVGTestCase.js"></script>
+<script src="../../fast/js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<h1>SVG 1.1 dynamic update tests</h1>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/SVGFEOffsetElement-svgdom-in-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dx-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dx-attr.js
new file mode 100644 (file)
index 0000000..dc8043e
--- /dev/null
@@ -0,0 +1,46 @@
+// [Name] SVGFEOffsetElement-dom-dx-attr.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'dx' attribute of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("dx", "50");
+offsetElement.setAttribute("dy", "0");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("offsetElement.getAttribute('dx')", "50");
+
+function executeTest() {
+    offsetElement.setAttribute("dx", "0");
+    shouldBeEqualToString("offsetElement.getAttribute('dx')", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dy-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-dy-attr.js
new file mode 100644 (file)
index 0000000..3eeba15
--- /dev/null
@@ -0,0 +1,46 @@
+// [Name] SVGFEOffsetElement-dom-dy-attr.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'dy' attribute of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("dx", "0");
+offsetElement.setAttribute("dy", "50");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("offsetElement.getAttribute('dy')", "50");
+
+function executeTest() {
+    offsetElement.setAttribute("dy", "0");
+    shouldBeEqualToString("offsetElement.getAttribute('dy')", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-in-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-dom-in-attr.js
new file mode 100644 (file)
index 0000000..e581ef7
--- /dev/null
@@ -0,0 +1,53 @@
+// [Name] SVGFEOffsetElement-dom-in-attr.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' attribute of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var blurElement = createSVGElement("feGaussianBlur");
+blurElement.setAttribute("in", "SourceGraphic");
+blurElement.setAttribute("stdDeviation", "2");
+blurElement.setAttribute("result", "blur");
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("in", "blur");
+offsetElement.setAttribute("dx", "0");
+offsetElement.setAttribute("dy", "0");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(blurElement);
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("offsetElement.getAttribute('in')", "blur");
+
+function executeTest() {
+    offsetElement.setAttribute("in", "SourceGraphic");
+    shouldBeEqualToString("offsetElement.getAttribute('in')", "SourceGraphic");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dx-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dx-prop.js
new file mode 100644 (file)
index 0000000..2a10b70
--- /dev/null
@@ -0,0 +1,46 @@
+// [Name] SVGFEOffsetElement-svgdom-dx-prop.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'dx' property of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("dx", "50");
+offsetElement.setAttribute("dy", "0");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("offsetElement.dx.baseVal", "50");
+
+function executeTest() {
+    offsetElement.dx.baseVal = 0;
+    shouldBe("offsetElement.dx.baseVal", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dy-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-dy-prop.js
new file mode 100644 (file)
index 0000000..a1c76ec
--- /dev/null
@@ -0,0 +1,46 @@
+// [Name] SVGFEOffsetElement-svgdom-dy-prop.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'dy' property of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("dx", "0");
+offsetElement.setAttribute("dy", "50");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("offsetElement.dy.baseVal", "50");
+
+function executeTest() {
+    offsetElement.dy.baseVal = 0;
+    shouldBe("offsetElement.dy.baseVal", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-in-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEOffsetElement-svgdom-in-prop.js
new file mode 100644 (file)
index 0000000..f028f13
--- /dev/null
@@ -0,0 +1,53 @@
+// [Name] SVGFEOffsetElement-svgdom-in-prop.js
+// [Expected rendering result] A green circle in the center of the image - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' property of the SVGFEOffsetElement object")
+createSVGTestCase();
+
+var blurElement = createSVGElement("feGaussianBlur");
+blurElement.setAttribute("in", "SourceGraphic");
+blurElement.setAttribute("stdDeviation", "2");
+blurElement.setAttribute("result", "blur");
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("in", "blur");
+offsetElement.setAttribute("dx", "0");
+offsetElement.setAttribute("dy", "0");
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "0");
+filterElement.setAttribute("width", "200");
+filterElement.setAttribute("height", "200");
+filterElement.appendChild(blurElement);
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("circle");
+rectElement.setAttribute("width", 200);
+rectElement.setAttribute("height", 200);
+rectElement.setAttribute("cx", "100");
+rectElement.setAttribute("cy", "100");
+rectElement.setAttribute("r", "70");
+rectElement.setAttribute("fill", "green");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("offsetElement.in1.baseVal", "blur");
+
+function executeTest() {
+    offsetElement.in1.baseVal = "SourceGraphic";
+    shouldBeEqualToString("offsetElement.in1.baseVal", "SourceGraphic");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
index 18f5561..aab59ba 100644 (file)
@@ -5,6 +5,26 @@
         SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
         https://bugs.webkit.org/show_bug.cgi?id=42244
 
+        Implementing svgAttributeChanged for SVGFEOffsetElement object.
+
+        Tests: svg/dynamic-updates/SVGFEOffsetElement-dom-dx-attr.html
+               svg/dynamic-updates/SVGFEOffsetElement-dom-dy-attr.html
+               svg/dynamic-updates/SVGFEOffsetElement-dom-in-attr.html
+               svg/dynamic-updates/SVGFEOffsetElement-svgdom-dx-prop.html
+               svg/dynamic-updates/SVGFEOffsetElement-svgdom-dy-prop.html
+               svg/dynamic-updates/SVGFEOffsetElement-svgdom-in-prop.html
+
+        * svg/SVGFEOffsetElement.cpp:
+        (WebCore::SVGFEOffsetElement::svgAttributeChanged):
+        * svg/SVGFEOffsetElement.h:
+
+2010-07-28  Zoltan Herczeg  <zherczeg@webkit.org>
+
+        Reviewed by Nikolas Zimmermann.
+
+        SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+        https://bugs.webkit.org/show_bug.cgi?id=42244
+
         Implementing svgAttributeChanged for SVGFEDiffuseLightingElement object.
 
         Tests: svg/dynamic-updates/SVGFEDiffuseLightingElement-dom-diffuseConstant-attr.html
index db96fce..ce26599 100644 (file)
@@ -49,6 +49,16 @@ void SVGFEOffsetElement::parseMappedAttribute(Attribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
+void SVGFEOffsetElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+    SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
+
+    if (attrName == SVGNames::inAttr
+        || attrName == SVGNames::dxAttr
+        || attrName == SVGNames::dyAttr)
+        invalidateFilter();
+}
+
 void SVGFEOffsetElement::synchronizeProperty(const QualifiedName& attrName)
 {
     SVGFilterPrimitiveStandardAttributes::synchronizeProperty(attrName);
index 4fbb698..6bf0d43 100644 (file)
@@ -33,6 +33,7 @@ public:
     virtual ~SVGFEOffsetElement();
 
     virtual void parseMappedAttribute(Attribute*);
+    virtual void svgAttributeChanged(const QualifiedName&);
     virtual void synchronizeProperty(const QualifiedName&);
     virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*);