Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<html lang="en">
<title>canvas filters: remove referenced filter element through document.removeChild()</title>
<body onload="loaded()">
<canvas id="canvas" width="10" height="10"></canvas>
<svg height="0">
<filter id="filter">
<feFlood flood-color="red"/>
</filter>
</svg>
<script>
function loaded() {
var ctx = document.getElementById('canvas').getContext('2d');
ctx.filter = 'url(#filter)';
ctx.fillRect(0, 0, 10, 10); // do a draw first to work around bug 1287316
document.removeChild(document.documentElement);
// The document.removeChild() call removed #filter from the document. So the
// filter reference should now be invalid, and the rect should be drawn
// without a filter applied, resulting in black.
ctx.fillRect(0, 0, 10, 10);
try {
var data = ctx.getImageData(0, 0, 1, 1).data;
if (data[0] == 0 && data[1] == 0 && data[2] == 0 && data[3] == 255) {
// Successfully painted black.
document.write('PASS');
} else {
// Painted something else, like red.
document.write('FAIL');
}
} catch (e) {
document.write('getImageData failed');
}
}
</script>