[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
zherczeg at webkit.org
zherczeg at webkit.org
Wed Dec 22 11:24:31 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 03f16da5016e1775c97b8669cf7f84a566a0ba15
Author: zherczeg at webkit.org <zherczeg at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 22 12:41:58 2010 +0000
SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
https://bugs.webkit.org/show_bug.cgi?id=42244
Reviewed by Nikolas Zimmermann.
WebCore:
Implementing svgAttributeChanged and childrenChanged for the base class of all filters,
called SVGFilterPrimitiveStandardAttributes.
Tests: svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html
svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
* svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilter):
LayoutTests:
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.png: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.checksum: Added.
* platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.png: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.txt: Added.
* svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html: Added.
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js: Added.
(executeTest):
* svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js: Added.
(executeTest):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63883 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index f71bd7b..4e50f4f 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,71 @@
+2010-07-22 Zoltan Herczeg <zherczeg at 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/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.png: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.checksum: Added.
+ * platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.png: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.txt: Added.
+ * svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html: Added.
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js: Added.
+ (executeTest):
+ * svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js: Added.
+ (executeTest):
+
2010-07-22 Kent Hansen <kent.hansen at nokia.com>
Reviewed by Kent Tamura.
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.checksum
new file mode 100644
index 0000000..cb85aaa
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.checksum
@@ -0,0 +1 @@
+fee94953fee506044437f62bde56e974
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.png
new file mode 100644
index 0000000..ebc1bd1
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.checksum
new file mode 100644
index 0000000..ed44621
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.checksum
@@ -0,0 +1 @@
+992106cc51ce9d500f19473764641535
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.png
new file mode 100644
index 0000000..0ed3559
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.checksum
new file mode 100644
index 0000000..fe41294
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.checksum
@@ -0,0 +1 @@
+1bd6a56da6da74316fe1f627f5bd8379
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.png
new file mode 100644
index 0000000..b2fe291
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.checksum
new file mode 100644
index 0000000..e1f5ef3
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.checksum
@@ -0,0 +1 @@
+64a5f11feac6da179f1151f8a0d66e33
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.png
new file mode 100644
index 0000000..df0da34
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.checksum
new file mode 100644
index 0000000..a05088f
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.checksum
@@ -0,0 +1 @@
+a82012e04917372f9cde6ed8ddc043a7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.png
new file mode 100644
index 0000000..cf39eb3
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.checksum
new file mode 100644
index 0000000..62b5000
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.checksum
@@ -0,0 +1 @@
+360af166aa18de67a9398035f797e587
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.png
new file mode 100644
index 0000000..dc42335
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.checksum
new file mode 100644
index 0000000..2e1dd04
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.checksum
@@ -0,0 +1 @@
+a6495a0efdef46525f63801cc7f3da92
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.png
new file mode 100644
index 0000000..c7033fc
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.checksum
new file mode 100644
index 0000000..912adcd
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.checksum
@@ -0,0 +1 @@
+14b6072487f3a8e68d7c9a6efd63a14d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.png
new file mode 100644
index 0000000..d6561e9
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.checksum
new file mode 100644
index 0000000..1329a55
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.checksum
@@ -0,0 +1 @@
+810b4151c3e5346b825cc187e44a235c
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.png
new file mode 100644
index 0000000..5cf4691
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.checksum
new file mode 100644
index 0000000..67c8740
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.checksum
@@ -0,0 +1 @@
+5fa2537b9969143e632859d6981f3e2d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.png
new file mode 100644
index 0000000..4b8288b
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.txt
new file mode 100644
index 0000000..98704d3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'height' attribute of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.getAttribute('height') is "100"
+PASS gradientElement.getAttribute('height') is "200"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html
new file mode 100644
index 0000000..c012711
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html
@@ -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/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.txt
new file mode 100644
index 0000000..8c68e28
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'result' attribute of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.getAttribute('result') is "res1"
+PASS gradientElement.getAttribute('result') is "res2"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html
new file mode 100644
index 0000000..dcd420c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html
@@ -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/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.txt
new file mode 100644
index 0000000..d6564fa
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'width' attribute of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.getAttribute('width') is "100"
+PASS gradientElement.getAttribute('width') is "200"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html
new file mode 100644
index 0000000..88d1832
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html
@@ -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/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.txt
new file mode 100644
index 0000000..94869a5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' attribute of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.getAttribute('x') is "100"
+PASS gradientElement.getAttribute('x') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html
new file mode 100644
index 0000000..52eba9b
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html
@@ -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/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.txt
new file mode 100644
index 0000000..2c7221f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' attribute of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.getAttribute('y') is "100"
+PASS gradientElement.getAttribute('y') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html
new file mode 100644
index 0000000..8a4a3f5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html
@@ -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/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.txt
new file mode 100644
index 0000000..349a285
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'height' property of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.height.baseVal.value is 100
+PASS gradientElement.height.baseVal.value is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html
new file mode 100644
index 0000000..ec12969
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html
@@ -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/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.txt
new file mode 100644
index 0000000..25b4519
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'result' propert of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.result.baseVal is "res1"
+PASS gradientElement.result.baseVal is "res2"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html
new file mode 100644
index 0000000..83a7b21
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html
@@ -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/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.txt
new file mode 100644
index 0000000..400e8b9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'width' property of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.width.baseVal.value is 100
+PASS gradientElement.width.baseVal.value is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html
new file mode 100644
index 0000000..8dc6fae
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html
@@ -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/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.txt
new file mode 100644
index 0000000..ea8ee0b
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' property of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.x.baseVal.value is 100
+PASS gradientElement.x.baseVal.value is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html
new file mode 100644
index 0000000..dff130a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html
@@ -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/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.txt
new file mode 100644
index 0000000..a33e8e3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' property of the SVGFilterPrimitiveStandardAttributes object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS gradientElement.y.baseVal.value is 100
+PASS gradientElement.y.baseVal.value is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html
new file mode 100644
index 0000000..5245aa5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html
@@ -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/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js
new file mode 100644
index 0000000..32c0144
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-height-attr.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-dom-height-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'height' attribute of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "100");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.getAttribute('height')", "100");
+
+function executeTest() {
+ gradientElement.setAttribute("height", "200");
+ shouldBeEqualToString("gradientElement.getAttribute('height')", "200");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js
new file mode 100644
index 0000000..32d4736
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-result-attr.js
@@ -0,0 +1,68 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-dom-result-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'result' attribute of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+// This dummy filter hides a bug on mac-leopard (works on Qt)
+// Should be removed when the bug is fixed
+var dummyElement = createSVGElement("feGaussianBlur");
+dummyElement.setAttribute("width", "200");
+dummyElement.setAttribute("height", "200");
+dummyElement.setAttribute("result", "res2");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.setAttribute("result", "res1");
+gradientElement.appendChild(pointLight);
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("in", "res2");
+
+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(dummyElement);
+filterElement.appendChild(gradientElement);
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.getAttribute('result')", "res1");
+
+function executeTest() {
+ gradientElement.setAttribute("result", "res2");
+ shouldBeEqualToString("gradientElement.getAttribute('result')", "res2");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js
new file mode 100644
index 0000000..4367404
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-width-attr.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-dom-width-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'width' attribute of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "100");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.getAttribute('width')", "100");
+
+function executeTest() {
+ gradientElement.setAttribute("width", "200");
+ shouldBeEqualToString("gradientElement.getAttribute('width')", "200");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js
new file mode 100644
index 0000000..5eb2bc5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-x-attr.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-dom-x-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'x' attribute of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "100");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.getAttribute('x')", "100");
+
+function executeTest() {
+ gradientElement.setAttribute("x", "0");
+ shouldBeEqualToString("gradientElement.getAttribute('x')", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js
new file mode 100644
index 0000000..3d2a0bf
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-dom-y-attr.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-dom-y-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'y' attribute of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "100");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.getAttribute('y')", "100");
+
+function executeTest() {
+ gradientElement.setAttribute("y", "0");
+ shouldBeEqualToString("gradientElement.getAttribute('y')", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js
new file mode 100644
index 0000000..b52cdac
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'height' property of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "100");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("gradientElement.height.baseVal.value", "100");
+
+function executeTest() {
+ gradientElement.height.baseVal.value = 200;
+ shouldBe("gradientElement.height.baseVal.value", "200");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js
new file mode 100644
index 0000000..70ca0c4
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js
@@ -0,0 +1,68 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'result' propert of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+// This dummy filter hides a bug on mac-leopard (works on Qt)
+// Should be removed when the bug is fixed
+var dummyElement = createSVGElement("feGaussianBlur");
+dummyElement.setAttribute("width", "200");
+dummyElement.setAttribute("height", "200");
+dummyElement.setAttribute("result", "res2");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.setAttribute("result", "res1");
+gradientElement.appendChild(pointLight);
+
+var offsetElement = createSVGElement("feOffset");
+offsetElement.setAttribute("in", "res2");
+
+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(dummyElement);
+filterElement.appendChild(gradientElement);
+filterElement.appendChild(offsetElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBeEqualToString("gradientElement.result.baseVal", "res1");
+
+function executeTest() {
+ gradientElement.result.baseVal = "res2";
+ shouldBeEqualToString("gradientElement.result.baseVal", "res2");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js
new file mode 100644
index 0000000..dbea496
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'width' property of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "100");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("gradientElement.width.baseVal.value", "100");
+
+function executeTest() {
+ gradientElement.width.baseVal.value = 200;
+ shouldBe("gradientElement.width.baseVal.value", "200");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js
new file mode 100644
index 0000000..2b21c86
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'x' property of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "100");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("gradientElement.x.baseVal.value", "100");
+
+function executeTest() {
+ gradientElement.x.baseVal.value = 0;
+ shouldBe("gradientElement.x.baseVal.value", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js
new file mode 100644
index 0000000..56bd3e8
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js
@@ -0,0 +1,55 @@
+// [Name] SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'y' property of the SVGFilterPrimitiveStandardAttributes object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "100");
+gradientElement.setAttribute("width", "200");
+gradientElement.setAttribute("height", "200");
+gradientElement.appendChild(pointLight);
+
+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(gradientElement);
+
+var defsElement = createSVGElement("defs");
+defsElement.appendChild(filterElement);
+
+rootSVGElement.appendChild(defsElement);
+
+var rectElement = createSVGElement("rect");
+rectElement.setAttribute("x", "0");
+rectElement.setAttribute("y", "0");
+rectElement.setAttribute("width", "200");
+rectElement.setAttribute("height", "200");
+rectElement.setAttribute("filter", "url(#myFilter)");
+rootSVGElement.appendChild(rectElement);
+
+shouldBe("gradientElement.y.baseVal.value", "100");
+
+function executeTest() {
+ gradientElement.y.baseVal.value = 0;
+ shouldBe("gradientElement.y.baseVal.value", "0");
+
+ completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f976cf2..6f9fe39 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,30 @@
+2010-07-22 Zoltan Herczeg <zherczeg at 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 and childrenChanged for the base class of all filters,
+ called SVGFilterPrimitiveStandardAttributes.
+
+ Tests: svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-height-attr.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-result-attr.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-width-attr.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-x-attr.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-dom-y-attr.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-height-prop.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-result-prop.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-width-prop.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-x-prop.html
+ svg/dynamic-updates/SVGFilterPrimitiveStandardAttributes-svgdom-y-prop.html
+
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
+ (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilter):
+
2010-07-22 Kent Tamura <tkent at chromium.org>
Reviewed by Darin Adler.
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
index 9b6b747..8e284e6 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
@@ -65,6 +65,18 @@ void SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(Attribute* attr)
return SVGStyledElement::parseMappedAttribute(attr);
}
+void SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(const QualifiedName& attrName)
+{
+ SVGStyledElement::svgAttributeChanged(attrName);
+
+ if (attrName == SVGNames::xAttr
+ || attrName == SVGNames::yAttr
+ || attrName == SVGNames::widthAttr
+ || attrName == SVGNames::heightAttr
+ || attrName == SVGNames::resultAttr)
+ invalidateFilter();
+}
+
void SVGFilterPrimitiveStandardAttributes::synchronizeProperty(const QualifiedName& attrName)
{
SVGStyledElement::synchronizeProperty(attrName);
@@ -90,6 +102,14 @@ void SVGFilterPrimitiveStandardAttributes::synchronizeProperty(const QualifiedNa
synchronizeResult();
}
+void SVGFilterPrimitiveStandardAttributes::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
+{
+ SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+
+ if (!changedByParser)
+ invalidateResourceClients();
+}
+
void SVGFilterPrimitiveStandardAttributes::setStandardAttributes(bool primitiveBoundingBoxMode, FilterEffect* filterEffect) const
{
ASSERT(filterEffect);
diff --git a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index 6d1adad..14784a5 100644
--- a/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -24,6 +24,7 @@
#if ENABLE(SVG) && ENABLE(FILTERS)
#include "FilterEffect.h"
#include "SVGFilterBuilder.h"
+#include "SVGFilterElement.h"
#include "SVGNames.h"
#include "SVGStyledElement.h"
@@ -40,13 +41,23 @@ public:
virtual bool isFilterEffect() const { return true; }
virtual void parseMappedAttribute(Attribute*);
+ virtual void svgAttributeChanged(const QualifiedName&);
virtual void synchronizeProperty(const QualifiedName&);
+ virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*) = 0;
virtual bool rendererIsNeeded(RenderStyle*) { return false; }
void setStandardAttributes(bool, FilterEffect*) const;
+protected:
+ void invalidateFilter()
+ {
+ if (!inDocument() || !parentNode()->hasTagName(SVGNames::filterTag))
+ return;
+ static_cast<SVGFilterElement*>(parentNode())->invalidateResourceClients();
+ }
+
private:
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::xAttr, SVGLength, X, x)
DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::yAttr, SVGLength, Y, y)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list