| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <div id="parent"> |
| <canvas id="mycanvas" width="200" height="200"></canvas> |
| </div> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var data; |
| function runTest() |
| { |
| var parent = document.getElementById("parent"); |
| var canvas = document.getElementById('mycanvas'); |
| var ctx = canvas.getContext('2d'); |
| ctx.fillStyle = 'red'; |
| ctx.fillRect(0, 0, 200, 200); |
| |
| var imageData; |
| imageData = ctx.getImageData(100, 100, 1, 1); |
| data = imageData.data; |
| shouldBe('data[0]', '255'); |
| shouldBe('data[1]', '0'); |
| shouldBe('data[2]', '0'); |
| |
| parent.removeChild(canvas); |
| // GC makes sure canvas element is removed. |
| if (window.GCController) |
| GCController.collect(); |
| |
| imageData = ctx.getImageData(100, 100, 1, 1); |
| data = imageData.data; |
| // The context is valid although the canvas is detached from document. |
| shouldBe('data[0]', '255'); |
| shouldBe('data[1]', '0'); |
| shouldBe('data[2]', '0'); |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| runTest(); |
| </script> |
| </body> |
| </html> |