Index: LayoutTests/fast/canvas/canvas-filter-svg-liveness.html |
diff --git a/LayoutTests/fast/canvas/canvas-filter-svg-liveness.html b/LayoutTests/fast/canvas/canvas-filter-svg-liveness.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..27c97cf2a90174ae111b4984bbe6e28854a9691e |
--- /dev/null |
+++ b/LayoutTests/fast/canvas/canvas-filter-svg-liveness.html |
@@ -0,0 +1,68 @@ |
+<script> |
+ |
+var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); |
+svg.setAttribute('style', 'display: block; width: 0; height: 0'); |
+ |
+var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); |
+ |
+var dropShadowFilter = document.createElementNS('http://www.w3.org/2000/svg', 'filter'); |
+dropShadowFilter.setAttribute('id', 'drop-shadow'); |
+ |
+var gaussianFilter = document.createElementNS('http://www.w3.org/2000/svg', 'feGaussianBlur'); |
+gaussianFilter.setAttribute('in', 'SourceAlpha'); |
+gaussianFilter.setAttribute('stdDeviation', '0'); |
+dropShadowFilter.appendChild(gaussianFilter); |
+ |
+var offset = document.createElementNS('http://www.w3.org/2000/svg', 'feOffset'); |
+offset.setAttribute('dx', '0'); |
+offset.setAttribute('dy', '0'); |
+offset.setAttribute('result', 'offsetblur'); |
+dropShadowFilter.appendChild(offset); |
+ |
+var flood = document.createElementNS('http://www.w3.org/2000/svg', 'feFlood'); |
+flood.setAttribute('flood-color', 'rgba(0,0,0,1)'); |
+dropShadowFilter.appendChild(flood); |
+ |
+var composite = document.createElementNS('http://www.w3.org/2000/svg', 'feComposite'); |
+composite.setAttribute('in2', 'offsetblur'); |
+composite.setAttribute('operator', 'in'); |
+dropShadowFilter.appendChild(composite); |
+ |
+var merge = document.createElementNS('http://www.w3.org/2000/svg', 'feMerge'); |
+var mergeNode = document.createElementNS('http://www.w3.org/2000/svg', 'feMergeNode'); |
+merge.appendChild(mergeNode); |
+ |
+var mergeNode = document.createElementNS('http://www.w3.org/2000/svg', 'feMergeNode'); |
+mergeNode.setAttribute('in', 'SourceGraphic'); |
+merge.appendChild(mergeNode); |
+dropShadowFilter.appendChild(merge); |
+ |
+defs.appendChild(dropShadowFilter); |
+svg.appendChild(defs); |
+ |
+document.body.appendChild(svg); |
+ |
+</script> |
+<svg style="display: block; width: 0; height: 0"> |
+ <defs> |
+ <filter id="drop-shadow"> |
+ <fegaussianblur in="SourceAlpha" stdDeviation="0"></fegaussianblur> |
+ <feoffset dx="0" dy="10" result="offsetblur"></feoffset> |
+ <feflood flood-color="rgba(0,0,0,1)"></feflood> |
+ <fecomposite in2="offsetblur" operator="in"></fecomposite> |
+ <femerge> |
+ <femergenode></femergenode> |
+ <femergenode in="SourceGraphic"></femergenode> |
+ </femerge> |
+ </filter> |
+ </defs> |
+</svg> |
+<canvas id="canvas" width="100" height="100"></canvas> |
+<script> |
+var canvas = document.getElementById('canvas'); |
+var ctx = canvas.getContext('2d'); |
+ctx.filter = 'url(#drop-shadow)'; |
+offset.setAttribute('dy', '10'); |
+ctx.fillStyle = '#0f0'; |
+ctx.fillRect(25, 25, 50, 40); |
+</script> |