summaryrefslogtreecommitdiffstats
path: root/dom/canvas/test/reftest/filters/liveness-document-open.html
blob: de31875e5325550522b1c2fd98c66d637dc962a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en">
<title>canvas filters: remove referenced filter element through document.open()</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.open();
  // The document.open() 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');
  }
  document.close();
}
</script>