[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:23:00 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b463861fe18423007939aec4f9274a9cbea0f23f
Author: zherczeg at webkit.org <zherczeg at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 21 09:57:19 2010 +0000

    WebCore: Reviewed Nikolas Zimmermann.
    
    SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
    https://bugs.webkit.org/show_bug.cgi?id=42244
    
    The implementation was done by Nikolas Zimmermann before, but
    there was no tests for it. The patch also implements the simple
    setFilterRes method.
    
    Tests: svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-height-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-width-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-x-attr.html
           svg/dynamic-updates/SVGFilterElement-dom-y-attr.html
           svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html
           svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html
           svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html
    
    * svg/SVGFilterElement.cpp:
    (WebCore::SVGFilterElement::setFilterRes):
    (WebCore::SVGFilterElement::svgAttributeChanged):
    (WebCore::SVGFilterElement::childrenChanged):
    * svg/SVGFilterElement.h:
    
    LayoutTests: SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
    https://bugs.webkit.org/show_bug.cgi?id=42244
    
    Reviewed by Nikolas Zimmermann.
    
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.png: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-height-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-width-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-x-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-dom-y-attr.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html: Added.
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterRes-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterUnits-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-height-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-primitiveUnits-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-width-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-x-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-dom-y-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterRes-call.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResX-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResY-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterUnits-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-height-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-primitiveUnits-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-width-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-x-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-y-prop.js: Added.
    (executeTest):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 38dff7e..d3407e3 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,107 @@
+2010-07-21  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/SVGFilterElement-dom-filterRes-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.png: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-height-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-width-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-x-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-dom-y-attr.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html: Added.
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterRes-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterUnits-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-height-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-primitiveUnits-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-width-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-x-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-dom-y-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterRes-call.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResX-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResY-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterUnits-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-height-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-primitiveUnits-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-width-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-x-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-y-prop.js: Added.
+        (executeTest):
+
 2010-07-20  Ben Murdoch  <benm at google.com>
 
         Reviewed by Steve Block.
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.checksum
new file mode 100644
index 0000000..7aa9962
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.checksum
@@ -0,0 +1 @@
+02819f66fcc6f05c843a950a49b98ae6
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png
new file mode 100644
index 0000000..3a1c23f
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.checksum
new file mode 100644
index 0000000..f3c563b
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.checksum
@@ -0,0 +1 @@
+c7af222224d4565811e790e68b254c0a
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.png
new file mode 100644
index 0000000..527c0ae
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.checksum
new file mode 100644
index 0000000..401fe1d
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.checksum
@@ -0,0 +1 @@
+76c814b04d9275419f2c7086ede1bf10
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.png
new file mode 100644
index 0000000..ecfe91a
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.checksum
new file mode 100644
index 0000000..cd0c78c
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.checksum
@@ -0,0 +1 @@
+a2a3ecfc4f67409ad9d3a707d913ab35
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.png
new file mode 100644
index 0000000..1a508a1
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.checksum
new file mode 100644
index 0000000..c7efcef
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.checksum
@@ -0,0 +1 @@
+2920288f74e7d0362d15356bc31dfe76
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.png
new file mode 100644
index 0000000..2dcf3a1
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.checksum
new file mode 100644
index 0000000..0f9903c
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.checksum
@@ -0,0 +1 @@
+2cb06b197af4b846d65a44eba0bdcfeb
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.png
new file mode 100644
index 0000000..b12155d
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.checksum
new file mode 100644
index 0000000..bf6086f
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.checksum
@@ -0,0 +1 @@
+6da9bdfff20cb8b11ed3dd6c8c7eb5c0
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.png
new file mode 100644
index 0000000..7380a55
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.checksum
new file mode 100644
index 0000000..2cf8e64
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.checksum
@@ -0,0 +1 @@
+1228fa7cdf24a815c56e670b25024079
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png
new file mode 100644
index 0000000..d7104af
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.checksum
new file mode 100644
index 0000000..4eff0b6
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.checksum
@@ -0,0 +1 @@
+d92771870a6152183c2936d91a5a8ab7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png
new file mode 100644
index 0000000..8d5ffff
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.checksum
new file mode 100644
index 0000000..b0a0717
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.checksum
@@ -0,0 +1 @@
+7b32269c06914a5c240aa4e2acc4e94c
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png
new file mode 100644
index 0000000..e3dffef
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.checksum
new file mode 100644
index 0000000..ae25501
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.checksum
@@ -0,0 +1 @@
+faee9565cdd4b756d735642b1dc08d28
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.png
new file mode 100644
index 0000000..ddda4e8
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.checksum
new file mode 100644
index 0000000..23fca36
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.checksum
@@ -0,0 +1 @@
+132722eb295069909a7d553e368439a4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.png
new file mode 100644
index 0000000..608f9cf
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.checksum
new file mode 100644
index 0000000..301eb32
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.checksum
@@ -0,0 +1 @@
+1707d657800804eb7df48747ee9f4b80
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.png
new file mode 100644
index 0000000..6cc0276
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.checksum
new file mode 100644
index 0000000..e7da496
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.checksum
@@ -0,0 +1 @@
+3bfc2c5eed905162e24d3bdcfe3e4ef9
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.png
new file mode 100644
index 0000000..0d8f65a
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.checksum
new file mode 100644
index 0000000..1de6434
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.checksum
@@ -0,0 +1 @@
+68ffa07d307d856ad3c38a44a33d97ed
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.png
new file mode 100644
index 0000000..538c60e
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.checksum
new file mode 100644
index 0000000..7259302
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.checksum
@@ -0,0 +1 @@
+361f39467de935d600a8722da6d3fea9
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.png
new file mode 100644
index 0000000..343d578
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.txt
new file mode 100644
index 0000000..e40cd02
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'filterRes' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('filterRes') is "400"
+PASS filterElement.getAttribute('filterRes') is "200"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html
new file mode 100644
index 0000000..e5d1ba0
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterRes-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/SVGFilterElement-dom-filterRes-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.txt
new file mode 100644
index 0000000..189720d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'filterUnits' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('filterUnits') is "userSpaceOnUse"
+PASS filterElement.getAttribute('filterUnits') is "objectBoundingBox"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html
new file mode 100644
index 0000000..7ce5a48
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-filterUnits-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/SVGFilterElement-dom-filterUnits-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.txt
new file mode 100644
index 0000000..330aea6
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-height-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'height' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('height') is "100"
+PASS filterElement.getAttribute('height') is "200"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-height-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-height-attr.html
new file mode 100644
index 0000000..b049ec7
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-dom-height-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.txt
new file mode 100644
index 0000000..e0d9a2f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'primitiveUnits' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('primitiveUnits') is "userSpaceOnUse"
+PASS filterElement.getAttribute('primitiveUnits') is "objectBoundingBox"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html
new file mode 100644
index 0000000..a0dc45e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-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/SVGFilterElement-dom-primitiveUnits-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.txt
new file mode 100644
index 0000000..e9c5888
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-width-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'width' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('width') is "100"
+PASS filterElement.getAttribute('width') is "200"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-width-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-width-attr.html
new file mode 100644
index 0000000..d61992d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-dom-width-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.txt
new file mode 100644
index 0000000..a994c33
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-x-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('x') is "100"
+PASS filterElement.getAttribute('x') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-x-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-x-attr.html
new file mode 100644
index 0000000..8d529ad
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-dom-x-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.txt
new file mode 100644
index 0000000..2d47601
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-y-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' attribute of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.getAttribute('y') is "100"
+PASS filterElement.getAttribute('y') is "0"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-y-attr.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-dom-y-attr.html
new file mode 100644
index 0000000..3be2a95
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-dom-y-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt
new file mode 100644
index 0000000..44e4eb5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt
@@ -0,0 +1,15 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'setFilterRes' call of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.filterResX.baseVal is 400
+PASS filterElement.filterResY.baseVal is 400
+PASS filterElement.filterResX.baseVal is 200
+PASS filterElement.filterResY.baseVal is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html
new file mode 100644
index 0000000..745dd2e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.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/SVGFilterElement-svgdom-filterRes-call.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt
new file mode 100644
index 0000000..23ebdc6
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'filterResX' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.filterResX.baseVal is 400
+PASS filterElement.filterResX.baseVal is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html
new file mode 100644
index 0000000..21fe77f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-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/SVGFilterElement-svgdom-filterResX-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt
new file mode 100644
index 0000000..0b2e35e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'filterResY' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.filterResY.baseVal is 400
+PASS filterElement.filterResY.baseVal is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html
new file mode 100644
index 0000000..0b14902
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-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/SVGFilterElement-svgdom-filterResY-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.txt
new file mode 100644
index 0000000..6e30184
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'filterUnits' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE
+PASS filterElement.filterUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html
new file mode 100644
index 0000000..1fcbeb4
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-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/SVGFilterElement-svgdom-filterUnits-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.txt
new file mode 100644
index 0000000..fbbf41e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'height' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.height.baseVal.value is 100
+PASS filterElement.height.baseVal.value is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html
new file mode 100644
index 0000000..172ec89
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-svgdom-height-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.txt
new file mode 100644
index 0000000..a1a88b4
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'primitiveUnits' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.primitiveUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE
+PASS filterElement.primitiveUnits.baseVal is SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html
new file mode 100644
index 0000000..32dec19
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-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/SVGFilterElement-svgdom-primitiveUnits-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.txt
new file mode 100644
index 0000000..535446e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'width' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.width.baseVal.value is 100
+PASS filterElement.width.baseVal.value is 200
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html
new file mode 100644
index 0000000..94d1b5c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-svgdom-width-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.txt
new file mode 100644
index 0000000..6405e9c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'x' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.x.baseVal.value is 100
+PASS filterElement.x.baseVal.value is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html
new file mode 100644
index 0000000..e2ba7af
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-svgdom-x-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.txt
new file mode 100644
index 0000000..0a435ad
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'y' property of the SVGFilterElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS filterElement.y.baseVal.value is 100
+PASS filterElement.y.baseVal.value is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html b/LayoutTests/svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html
new file mode 100644
index 0000000..845895c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFilterElement-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/SVGFilterElement-svgdom-y-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterRes-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterRes-attr.js
new file mode 100644
index 0000000..ad15a67
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterRes-attr.js
@@ -0,0 +1,52 @@
+// [Name] SVGFilterElement-dom-filterRes-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'filterRes' attribute of the SVGFilterElement 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.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.setAttribute("filterRes", "400");
+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("filterElement.getAttribute('filterRes')", "400");
+
+function executeTest() {
+    filterElement.setAttribute("filterRes", "200");
+    shouldBeEqualToString("filterElement.getAttribute('filterRes')", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterUnits-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterUnits-attr.js
new file mode 100644
index 0000000..d8d5baf
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-filterUnits-attr.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-dom-filterUnits-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'filterUnits' attribute of the SVGFilterElement 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.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", "1");
+filterElement.setAttribute("height", "1");
+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("filterElement.getAttribute('filterUnits')", "userSpaceOnUse");
+
+function executeTest() {
+    filterElement.setAttribute("filterUnits", "objectBoundingBox");
+    shouldBeEqualToString("filterElement.getAttribute('filterUnits')", "objectBoundingBox");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-height-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-height-attr.js
new file mode 100644
index 0000000..2261187
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-height-attr.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.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", "100");
+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("filterElement.getAttribute('height')", "100");
+
+function executeTest() {
+    filterElement.setAttribute("height", "200");
+    shouldBeEqualToString("filterElement.getAttribute('height')", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-primitiveUnits-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-primitiveUnits-attr.js
new file mode 100644
index 0000000..5dfefe3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-primitiveUnits-attr.js
@@ -0,0 +1,56 @@
+// [Name] SVGFilterElement-dom-primitiveUnits-attr.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'primitiveUnits' attribute of the SVGFilterElement object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "1");
+gradientElement.setAttribute("height", "1");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("primitiveUnits", "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("filterElement.getAttribute('primitiveUnits')", "userSpaceOnUse");
+
+function executeTest() {
+    filterElement.setAttribute("primitiveUnits", "objectBoundingBox");
+    shouldBeEqualToString("filterElement.getAttribute('primitiveUnits')", "objectBoundingBox");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-width-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-width-attr.js
new file mode 100644
index 0000000..9bc92d5
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-width-attr.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.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", "100");
+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("filterElement.getAttribute('width')", "100");
+
+function executeTest() {
+    filterElement.setAttribute("width", "200");
+    shouldBeEqualToString("filterElement.getAttribute('width')", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-x-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-x-attr.js
new file mode 100644
index 0000000..44ddafc
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-x-attr.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "100");
+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("filterElement.getAttribute('x')", "100");
+
+function executeTest() {
+    filterElement.setAttribute("x", "0");
+    shouldBeEqualToString("filterElement.getAttribute('x')", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-y-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-y-attr.js
new file mode 100644
index 0000000..c71c408
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-dom-y-attr.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "100");
+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("filterElement.getAttribute('y')", "100");
+
+function executeTest() {
+    filterElement.setAttribute("y", "0");
+    shouldBeEqualToString("filterElement.getAttribute('y')", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterRes-call.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterRes-call.js
new file mode 100644
index 0000000..d204418
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterRes-call.js
@@ -0,0 +1,54 @@
+// [Name] SVGFilterElement-svgdom-filterRes-call.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'setFilterRes' call of the SVGFilterElement 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.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.setAttribute("filterRes", "400");
+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("filterElement.filterResX.baseVal", "400");
+shouldBe("filterElement.filterResY.baseVal", "400");
+
+function executeTest() {
+    filterElement.setFilterRes(200, 200);
+    shouldBe("filterElement.filterResX.baseVal", "200");
+    shouldBe("filterElement.filterResY.baseVal", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResX-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResX-prop.js
new file mode 100644
index 0000000..a58fa37
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResX-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFilterElement-svgdom-filterResX-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'filterResX' property of the SVGFilterElement 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.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.setAttribute("filterRes", "400 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("filterElement.filterResX.baseVal", "400");
+
+function executeTest() {
+    filterElement.filterResX.baseVal = 200;
+    shouldBe("filterElement.filterResX.baseVal", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResY-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResY-prop.js
new file mode 100644
index 0000000..75307cf
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterResY-prop.js
@@ -0,0 +1,52 @@
+// [Name] SVGFilterElement-svgdom-filterResY-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'filterResY' property of the SVGFilterElement 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.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.setAttribute("filterRes", "200 400");
+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("filterElement.filterResY.baseVal", "400");
+
+function executeTest() {
+    filterElement.filterResY.baseVal = 200;
+    shouldBe("filterElement.filterResY.baseVal", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterUnits-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterUnits-prop.js
new file mode 100644
index 0000000..04ddb57
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-filterUnits-prop.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-svgdom-filterUnits-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'filterUnits' property of the SVGFilterElement 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.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", "1");
+filterElement.setAttribute("height", "1");
+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("filterElement.filterUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
+
+function executeTest() {
+    filterElement.filterUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+    shouldBe("filterElement.filterUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-height-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-height-prop.js
new file mode 100644
index 0000000..290d27f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-height-prop.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.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", "100");
+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("filterElement.height.baseVal.value", "100");
+
+function executeTest() {
+    filterElement.height.baseVal.value = 200;
+    shouldBe("filterElement.height.baseVal.value", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-primitiveUnits-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-primitiveUnits-prop.js
new file mode 100644
index 0000000..01d699f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-primitiveUnits-prop.js
@@ -0,0 +1,56 @@
+// [Name] SVGFilterElement-svgdom-primitiveUnits-prop.js
+// [Expected rendering result] An offseted gradient (performed by diffuse lighting) - and a series of PASS messages
+
+description("Tests dynamic updates of the 'primitiveUnits' property of the SVGFilterElement object")
+createSVGTestCase();
+
+var pointLight = createSVGElement("fePointLight");
+pointLight.setAttribute("x", "100");
+pointLight.setAttribute("y", "100");
+pointLight.setAttribute("z", "30");
+
+var gradientElement = createSVGElement("feDiffuseLighting");
+gradientElement.setAttribute("x", "0");
+gradientElement.setAttribute("y", "0");
+gradientElement.setAttribute("width", "1");
+gradientElement.setAttribute("height", "1");
+gradientElement.setAttribute("in", "SourceGraphic");
+gradientElement.setAttribute("diffuseConstant", "1");
+gradientElement.setAttribute("lighting-color", "yellow");
+gradientElement.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("primitiveUnits", "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("filterElement.primitiveUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE");
+
+function executeTest() {
+    filterElement.primitiveUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
+    shouldBe("filterElement.primitiveUnits.baseVal", "SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-width-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-width-prop.js
new file mode 100644
index 0000000..06366de
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-width-prop.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.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", "100");
+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("filterElement.width.baseVal.value", "100");
+
+function executeTest() {
+    filterElement.width.baseVal.value = 200;
+    shouldBe("filterElement.width.baseVal.value", "200");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-x-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-x-prop.js
new file mode 100644
index 0000000..576514c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-x-prop.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "100");
+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("filterElement.x.baseVal.value", "100");
+
+function executeTest() {
+    filterElement.x.baseVal.value = 0;
+    shouldBe("filterElement.x.baseVal.value", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-y-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-y-prop.js
new file mode 100644
index 0000000..0096127
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFilterElement-svgdom-y-prop.js
@@ -0,0 +1,51 @@
+// [Name] SVGFilterElement-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 SVGFilterElement 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.appendChild(pointLight);
+
+var filterElement = createSVGElement("filter");
+filterElement.setAttribute("id", "myFilter");
+filterElement.setAttribute("filterUnits", "userSpaceOnUse");
+filterElement.setAttribute("x", "0");
+filterElement.setAttribute("y", "100");
+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("filterElement.y.baseVal.value", "100");
+
+function executeTest() {
+    filterElement.y.baseVal.value = 0;
+    shouldBe("filterElement.y.baseVal.value", "0");
+
+    completeTest();
+}
+
+startTest(rectElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 44285c1..e0348af 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,37 @@
+2010-07-21  Zoltan Herczeg  <zherczeg at webkit.org>
+
+        Reviewed Nikolas Zimmermann.
+
+        SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
+        https://bugs.webkit.org/show_bug.cgi?id=42244
+
+        The implementation was done by Nikolas Zimmermann before, but
+        there was no tests for it. The patch also implements the simple
+        setFilterRes method.
+
+        Tests: svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-height-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-width-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-x-attr.html
+               svg/dynamic-updates/SVGFilterElement-dom-y-attr.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html
+               svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html
+
+        * svg/SVGFilterElement.cpp:
+        (WebCore::SVGFilterElement::setFilterRes):
+        (WebCore::SVGFilterElement::svgAttributeChanged):
+        (WebCore::SVGFilterElement::childrenChanged):
+        * svg/SVGFilterElement.h:
+
 2010-07-21  Ben Murdoch  <benm at google.com>
 
         Unreviewed, build fix.
diff --git a/WebCore/svg/SVGFilterElement.cpp b/WebCore/svg/SVGFilterElement.cpp
index b86b8c4..4387e71 100644
--- a/WebCore/svg/SVGFilterElement.cpp
+++ b/WebCore/svg/SVGFilterElement.cpp
@@ -62,8 +62,11 @@ SVGFilterElement::~SVGFilterElement()
 {
 }
 
-void SVGFilterElement::setFilterRes(unsigned long, unsigned long) const
+void SVGFilterElement::setFilterRes(unsigned long filterResX, unsigned long filterResY)
 {
+    setFilterResXBaseValue(filterResX);
+    setFilterResYBaseValue(filterResY);
+    invalidateResourceClients();
 }
 
 void SVGFilterElement::parseMappedAttribute(Attribute* attr)
@@ -122,10 +125,10 @@ void SVGFilterElement::svgAttributeChanged(const QualifiedName& attrName)
         || attrName == SVGNames::filterUnitsAttr
         || attrName == SVGNames::primitiveUnitsAttr
         || attrName == SVGNames::filterResAttr
+        || SVGStyledElement::isKnownAttribute(attrName)
         || SVGURIReference::isKnownAttribute(attrName)
         || SVGLangSpace::isKnownAttribute(attrName)
-        || SVGExternalResourcesRequired::isKnownAttribute(attrName)
-        || SVGStyledElement::isKnownAttribute(attrName))
+        || SVGExternalResourcesRequired::isKnownAttribute(attrName))
         invalidateResourceClients();
 }
 
@@ -168,6 +171,14 @@ void SVGFilterElement::synchronizeProperty(const QualifiedName& attrName)
         synchronizeHref();
 }
 
+void SVGFilterElement::childrenChanged(bool changedByParser, Node* beforeChange, Node* afterChange, int childCountDelta)
+{
+    SVGStyledElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
+
+    if (!changedByParser)
+        invalidateResourceClients();
+}
+
 FloatRect SVGFilterElement::filterBoundingBox(const FloatRect& objectBoundingBox) const
 {
     FloatRect filterBBox;
diff --git a/WebCore/svg/SVGFilterElement.h b/WebCore/svg/SVGFilterElement.h
index 85679c7..7b0192c 100644
--- a/WebCore/svg/SVGFilterElement.h
+++ b/WebCore/svg/SVGFilterElement.h
@@ -43,12 +43,13 @@ public:
     SVGFilterElement(const QualifiedName&, Document*);
     virtual ~SVGFilterElement();
 
-    void setFilterRes(unsigned long filterResX, unsigned long filterResY) const;
+    void setFilterRes(unsigned long filterResX, unsigned long filterResY);
     FloatRect filterBoundingBox(const FloatRect&) const;
 
     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 RenderObject* createRenderer(RenderArena*, RenderStyle*);
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list