[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

reni at webkit.org reni at webkit.org
Wed Dec 22 15:47:31 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit ce1f86b65d3731bc1539b8f6a53e69b726e90f41
Author: reni at webkit.org <reni at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 12 13:52:42 2010 +0000

    WebCore: SVGFEDisplacementMapElement doesn't support dynamic invalidation
    https://bugs.webkit.org/show_bug.cgi?id=49430
    
    Patch by Renata Hodovan <reni at webkit.org> on 2010-11-12
    Reviewed by Nikolas Zimmermann.
    
    The dynamic changes are captured by the svgAttributeChanged function. Invalidate the filter primitive if necessary.
    
    Tests: svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html
           svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html
    
    * svg/SVGFEDisplacementMapElement.cpp:
    (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
    * svg/SVGFEDisplacementMapElement.h:
    
    LayoutTests: SVGFEDisplacementMapElement doesn't support dynamic invalidation, when attributes change.
    https://bugs.webkit.org/show_bug.cgi?id=49430
    
    Patch by Renata Hodovan <reni at webkit.org> on 2010-11-12
    Reviewed by Nikolas Zimmermann.
    
    Adding layout tests for feDisplacementMap dynamic changes.
    
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.png: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.checksum: Added.
    * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.png: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.txt: Added.
    * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html: Added.
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in2-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-scale-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in2-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-scale-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js: Added.
    (executeTest):
    * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js: Added.
    (executeTest):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71908 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 853a7f1..26a61db 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,73 @@
+2010-11-12  Renata Hodovan  <reni at webkit.org>
+
+        Reviewed by Nikolas Zimmermann.
+
+        SVGFEDisplacementMapElement doesn't support dynamic invalidation, when attributes change.
+        https://bugs.webkit.org/show_bug.cgi?id=49430
+
+        Adding layout tests for feDisplacementMap dynamic changes.
+
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.png: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.checksum: Added.
+        * platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.png: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.txt: Added.
+        * svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html: Added.
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in2-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-scale-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in2-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-scale-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js: Added.
+        (executeTest):
+        * svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js: Added.
+        (executeTest):
+
 2010-11-12  Marcus Bulach  <bulach at chromium.org>
 
         Not reviewed, Chromium test expectation update.
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.checksum
new file mode 100644
index 0000000..fe4779a
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.checksum
@@ -0,0 +1 @@
+0cfba68c78d4fcdb1f0fd94916072798
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.png
new file mode 100644
index 0000000..e096bd2
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.checksum
new file mode 100644
index 0000000..16ed906
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.checksum
@@ -0,0 +1 @@
+161ef46e70573daec956adb148a8e90d
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.png
new file mode 100644
index 0000000..f33171c
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.checksum
new file mode 100644
index 0000000..6bb992a
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.checksum
@@ -0,0 +1 @@
+363b1648038a0c479113c4e298009cd5
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.png
new file mode 100644
index 0000000..c9a39c3
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.checksum
new file mode 100644
index 0000000..9476291
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.checksum
@@ -0,0 +1 @@
+caae780d2702f52f0ab92b0cbcdc42f7
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.png
new file mode 100644
index 0000000..876f2d1
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.checksum
new file mode 100644
index 0000000..8c692d8
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.checksum
@@ -0,0 +1 @@
+2696058e642fec288332f90b1207b820
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.png
new file mode 100644
index 0000000..5c3103d
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.checksum
new file mode 100644
index 0000000..7b3bc08
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.checksum
@@ -0,0 +1 @@
+b11e0af76fbff8d1d35684ee29632a44
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.png
new file mode 100644
index 0000000..1fc42df
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.checksum
new file mode 100644
index 0000000..4dad477
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.checksum
@@ -0,0 +1 @@
+592f9f4a7609ced7f4ff96d32e166f2a
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.png
new file mode 100644
index 0000000..435af60
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.checksum
new file mode 100644
index 0000000..4a95335
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.checksum
@@ -0,0 +1 @@
+f7973855d3931b2309d3365a284d53f4
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.png
new file mode 100644
index 0000000..d27a7e7
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.checksum
new file mode 100644
index 0000000..de20e73
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.checksum
@@ -0,0 +1 @@
+9b1a9e4ec8cba4bf3232ea8b628396ae
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.png
new file mode 100644
index 0000000..f77e46d
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.png differ
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.checksum b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.checksum
new file mode 100644
index 0000000..595d5aa
--- /dev/null
+++ b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.checksum
@@ -0,0 +1 @@
+c110c5a501b14794869b446600b0fa76
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.png b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.png
new file mode 100644
index 0000000..e6e6ab0
Binary files /dev/null and b/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.png differ
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.txt
new file mode 100644
index 0000000..1f2708b
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' attribute of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.getAttribute('in') is "Map"
+PASS displacementMap.getAttribute('in') is "Texture"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html
new file mode 100644
index 0000000..0f099e6
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-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/SVGFEDisplacementMapElement-dom-in-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.txt
new file mode 100644
index 0000000..33769a1
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in2' attribute of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.getAttribute('in2') is "Texture"
+PASS displacementMap.getAttribute('in2') is "Map"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html
new file mode 100644
index 0000000..ded0ced
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-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/SVGFEDisplacementMapElement-dom-in2-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.txt
new file mode 100644
index 0000000..844097c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'scale' attribute of the SVGFEDisplacementMapeElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.getAttribute('scale') is "34"
+PASS displacementMap.getAttribute('scale') is "64"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html
new file mode 100644
index 0000000..8a29793
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-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/SVGFEDisplacementMapElement-dom-scale-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.txt
new file mode 100644
index 0000000..7e9f824
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'xChannelSelector' attribute of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.getAttribute('xChannelSelector') is "B"
+PASS displacementMap.getAttribute('xChannelSelector') is "R"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html
new file mode 100644
index 0000000..15a2f0e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-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/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.txt
new file mode 100644
index 0000000..fc6af8b
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'yChannelSelector' attribute of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.getAttribute('yChannelSelector') is "B"
+PASS displacementMap.getAttribute('yChannelSelector') is "G"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html
new file mode 100644
index 0000000..caf41f9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-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/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.txt
new file mode 100644
index 0000000..3431cf9
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in' property of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.in1.baseVal is "Map"
+PASS displacementMap.in1.baseVal is "Texture"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html
new file mode 100644
index 0000000..0971b8c
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-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/SVGFEDisplacementMapElement-svgdom-in-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.txt
new file mode 100644
index 0000000..4c7d25f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'in2' property of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.in2.baseVal is "Texture"
+PASS displacementMap.in2.baseVal is "Map"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html
new file mode 100644
index 0000000..3d20c5f
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-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/SVGFEDisplacementMapElement-svgdom-in2-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.txt
new file mode 100644
index 0000000..bf37439
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'scale' property of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.scale.baseVal is 34
+PASS displacementMap.scale.baseVal is 64
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html
new file mode 100644
index 0000000..22e5805
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-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/SVGFEDisplacementMapElement-svgdom-scale-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.txt
new file mode 100644
index 0000000..a5574db
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'xChannelSelector' property of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.xChannelSelector.baseVal is SVGFEDisplacementMapElement.SVG_CHANNEL_B
+PASS displacementMap.xChannelSelector.baseVal is SVGFEDisplacementMapElement.SVG_CHANNEL_R
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html
new file mode 100644
index 0000000..df7bb3a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-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/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.txt b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.txt
new file mode 100644
index 0000000..b659973
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop-expected.txt
@@ -0,0 +1,13 @@
+SVG 1.1 dynamic update tests
+
+Tests dynamic updates of the 'yChannelSelector' property of the SVGFEDisplacementMapElement object
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS displacementMap.yChannelSelector.baseVal is SVGFEDisplacementMapElement.SVG_CHANNEL_B
+PASS displacementMap.yChannelSelector.baseVal is SVGFEDisplacementMapElement.SVG_CHANNEL_G
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html
new file mode 100644
index 0000000..3a2ba6e
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-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/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in-attr.js
new file mode 100644
index 0000000..e10f5f2
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in-attr.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-dom-in-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' attribute of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Map");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.getAttribute('in')", "Map");
+
+function executeTest() {
+    displacementMap.setAttribute("in", "Texture");
+    shouldBeEqualToString("displacementMap.getAttribute('in')", "Texture");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in2-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in2-attr.js
new file mode 100644
index 0000000..6d47794
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-in2-attr.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-dom-in2-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in2' attribute of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Texture");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.getAttribute('in2')", "Texture");
+
+function executeTest() {
+    displacementMap.setAttribute("in2", "Map");
+    shouldBeEqualToString("displacementMap.getAttribute('in2')", "Map");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-scale-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-scale-attr.js
new file mode 100644
index 0000000..664b74d
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-scale-attr.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-dom-scale-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'scale' attribute of the SVGFEDisplacementMapeElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "34");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.getAttribute('scale')", "34");
+
+function executeTest() {
+    displacementMap.setAttribute("scale", "64");
+    shouldBeEqualToString("displacementMap.getAttribute('scale')", "64");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js
new file mode 100644
index 0000000..3cbd71a
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-dom-xChannelSelector-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'xChannelSelector' attribute of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "B");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.getAttribute('xChannelSelector')", "B");
+
+function executeTest() {
+    displacementMap.setAttribute("xChannelSelector", "R");
+    shouldBeEqualToString("displacementMap.getAttribute('xChannelSelector')", "R");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js
new file mode 100644
index 0000000..89d1b86
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-dom-yChannelSelector-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'yChannelSelector' attribute of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "B");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.getAttribute('yChannelSelector')", "B");
+
+function executeTest() {
+    displacementMap.setAttribute("yChannelSelector", "G");
+    shouldBeEqualToString("displacementMap.getAttribute('yChannelSelector')", "G");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in-prop.js
new file mode 100644
index 0000000..8452bfe
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in-prop.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-svgdom-in-prop.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in' property of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Map");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.in1.baseVal", "Map");
+
+function executeTest() {
+    displacementMap.in1.baseVal = "Texture";
+    shouldBeEqualToString("displacementMap.in1.baseVal", "Texture");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in2-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in2-prop.js
new file mode 100644
index 0000000..00fc4c3
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-in2-prop.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-svgdom-in2-attr.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'in2' property of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Texture");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBeEqualToString("displacementMap.in2.baseVal", "Texture");
+
+function executeTest() {
+    displacementMap.in2.baseVal = "Map";
+    shouldBeEqualToString("displacementMap.in2.baseVal", "Map");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-scale-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-scale-prop.js
new file mode 100644
index 0000000..977ad43
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-scale-prop.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-svgdom-scale-prop.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'scale' property of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "34");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBe("displacementMap.scale.baseVal", "34");
+
+function executeTest() {
+    displacementMap.scale.baseVal = 64;
+    shouldBe("displacementMap.scale.baseVal", "64");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js
new file mode 100644
index 0000000..e42cd22
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'xChannelSelector' property of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "B");
+displacementMap.setAttribute("yChannelSelector", "G");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBe("displacementMap.xChannelSelector.baseVal", "SVGFEDisplacementMapElement.SVG_CHANNEL_B");
+
+function executeTest() {
+    displacementMap.xChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_R;
+    shouldBe("displacementMap.xChannelSelector.baseVal", "SVGFEDisplacementMapElement.SVG_CHANNEL_R");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js
new file mode 100644
index 0000000..4f54d08
--- /dev/null
+++ b/LayoutTests/svg/dynamic-updates/script-tests/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js
@@ -0,0 +1,59 @@
+// [Name] SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.js
+// [Expected rendering result] A rectangle with displacementMap filter - and a series of PASS messages
+
+description("Tests dynamic updates of the 'yChannelSelector' property of the SVGFEDisplacementMapElement object")
+createSVGTestCase();
+
+var defsElement = createSVGElement("defs");
+rootSVGElement.appendChild(defsElement);
+
+var image1 = createSVGElement("feImage");
+image1.setAttribute("result", "Map");
+image1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png");
+
+var image2 = createSVGElement("feImage");
+image2.setAttribute("result", "Texture");
+image2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png");
+
+var displacementMap = createSVGElement("feDisplacementMap");
+displacementMap.setAttribute("in", "Texture");
+displacementMap.setAttribute("in2", "Map");
+displacementMap.setAttribute("scale", "64");
+displacementMap.setAttribute("xChannelSelector", "R");
+displacementMap.setAttribute("yChannelSelector", "B");
+
+var displacemenMapFilter = createSVGElement("filter");
+displacemenMapFilter.setAttribute("id", "myFilter");
+displacemenMapFilter.setAttribute("filterUnit", "objectBoundingBox");
+displacemenMapFilter.setAttribute("x", "0");
+displacemenMapFilter.setAttribute("y", "0");
+displacemenMapFilter.setAttribute("width", "1");
+displacemenMapFilter.setAttribute("height", "1");
+displacemenMapFilter.appendChild(image1);
+displacemenMapFilter.appendChild(image2);
+displacemenMapFilter.appendChild(displacementMap);
+
+defsElement.appendChild(displacemenMapFilter);
+
+var myRect = createSVGElement("rect");
+myRect.setAttribute("x", "15");
+myRect.setAttribute("y", "15");
+myRect.setAttribute("width", "128");
+myRect.setAttribute("height", "128");
+myRect.setAttribute("filter", "url(#myFilter)");
+
+rootSVGElement.setAttribute("height", "200");
+rootSVGElement.appendChild(myRect);
+
+shouldBe("displacementMap.yChannelSelector.baseVal", "SVGFEDisplacementMapElement.SVG_CHANNEL_B");
+
+function executeTest() {
+    displacementMap.yChannelSelector.baseVal = SVGFEDisplacementMapElement.SVG_CHANNEL_G;
+    shouldBe("displacementMap.yChannelSelector.baseVal", "SVGFEDisplacementMapElement.SVG_CHANNEL_G");
+
+    completeTest();
+}
+
+startTest(rootSVGElement, 100, 100);
+
+var successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b8cbb4b..75168b5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,27 @@
+2010-11-12  Renata Hodovan  <reni at webkit.org>
+
+        Reviewed by Nikolas Zimmermann.
+
+        SVGFEDisplacementMapElement doesn't support dynamic invalidation
+        https://bugs.webkit.org/show_bug.cgi?id=49430
+
+        The dynamic changes are captured by the svgAttributeChanged function. Invalidate the filter primitive if necessary.
+
+        Tests: svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in-attr.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-dom-in2-attr.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-dom-scale-attr.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-dom-xChannelSelector-attr.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-dom-yChannelSelector-attr.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in-prop.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-in2-prop.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-scale-prop.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-xChannelSelector-prop.html
+               svg/dynamic-updates/SVGFEDisplacementMapElement-svgdom-yChannelSelector-prop.html
+
+        * svg/SVGFEDisplacementMapElement.cpp:
+        (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
+        * svg/SVGFEDisplacementMapElement.h:
+
 2010-11-12  Andrey Kosyakov  <caseq at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.cpp b/WebCore/svg/SVGFEDisplacementMapElement.cpp
index ea8a7b8..ba3311b 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.cpp
+++ b/WebCore/svg/SVGFEDisplacementMapElement.cpp
@@ -69,6 +69,18 @@ void SVGFEDisplacementMapElement::parseMappedAttribute(Attribute* attr)
         SVGFilterPrimitiveStandardAttributes::parseMappedAttribute(attr);
 }
 
+void SVGFEDisplacementMapElement::svgAttributeChanged(const QualifiedName& attrName)
+{
+    SVGFilterPrimitiveStandardAttributes::svgAttributeChanged(attrName);
+
+    if (attrName == SVGNames::xChannelSelectorAttr
+        || attrName == SVGNames::yChannelSelectorAttr
+        || attrName == SVGNames::inAttr
+        || attrName == SVGNames::in2Attr
+        || attrName == SVGNames::scaleAttr)
+        invalidate();
+}
+
 void SVGFEDisplacementMapElement::synchronizeProperty(const QualifiedName& attrName)
 {
     SVGFilterPrimitiveStandardAttributes::synchronizeProperty(attrName);
diff --git a/WebCore/svg/SVGFEDisplacementMapElement.h b/WebCore/svg/SVGFEDisplacementMapElement.h
index a2c9e43..8131d82 100644
--- a/WebCore/svg/SVGFEDisplacementMapElement.h
+++ b/WebCore/svg/SVGFEDisplacementMapElement.h
@@ -36,6 +36,7 @@ private:
     SVGFEDisplacementMapElement(const QualifiedName& tagName, Document*);
     
     virtual void parseMappedAttribute(Attribute*);
+    virtual void svgAttributeChanged(const QualifiedName&);
     virtual void synchronizeProperty(const QualifiedName&);
     virtual PassRefPtr<FilterEffect> build(SVGFilterBuilder*);
     

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list