| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../resources/js-test.js"></script> | 4 <script src="../../resources/testharness.js"></script> |
| 5 <script src="../../resources/testharnessreport.js"></script> |
| 5 </head> | 6 </head> |
| 6 <body> | 7 <body> |
| 7 <script> | 8 <script> |
| 8 if (window.testRunner) { | |
| 9 testRunner.dumpAsText(); | |
| 10 testRunner.waitUntilDone(); | |
| 11 } | |
| 12 | |
| 13 var barrier = 2; | 9 var barrier = 2; |
| 14 function frameLoaded() | 10 function frameLoaded() |
| 15 { | 11 { |
| 16 barrier--; | 12 barrier--; |
| 17 if (barrier == 0) | 13 if (barrier == 0) |
| 18 runTest(); | 14 runTest(); |
| 19 } | 15 } |
| 20 | 16 |
| 21 function runTest() | 17 function runTest() |
| 22 { | 18 { |
| 23 debug("check if re-parenting canvas keeps its context.") | 19 test(function(t) { |
| 24 canvasTest(document.getElementById("frame1"), true); | 20 canvasTest(document.getElementById("frame1"), true); |
| 25 debug("check if detaching canvas loses its context.") | 21 }, 'check if re-parenting canvas keeps its context.'); |
| 26 canvasTest(document.getElementById("frame2"), false); | |
| 27 | 22 |
| 28 if (window.testRunner) | 23 test(function(t) { |
| 29 testRunner.notifyDone(); | 24 canvasTest(document.getElementById("frame2"), false); |
| 25 }, 'check if detaching canvas loses its context.'); |
| 30 } | 26 } |
| 31 | 27 |
| 32 var data; | 28 var data; |
| 33 function canvasTest(frame, adoptCanvas) | 29 function canvasTest(frame, adoptCanvas) |
| 34 { | 30 { |
| 35 var parent = document.getElementById("parent"); | 31 var parent = document.getElementById("parent"); |
| 36 var canvas = frame.contentDocument.getElementById('mycanvas'); | 32 var canvas = frame.contentDocument.getElementById('mycanvas'); |
| 37 var ctx = canvas.getContext('2d'); | 33 var ctx = canvas.getContext('2d'); |
| 38 | 34 |
| 39 var imageData; | 35 var imageData; |
| 40 imageData = ctx.getImageData(100, 100, 1, 1); | 36 imageData = ctx.getImageData(100, 100, 1, 1); |
| 41 data = imageData.data; | 37 data = imageData.data; |
| 42 shouldBe('data[0]', '255'); | 38 assert_equals(data[0], 255); |
| 43 shouldBe('data[1]', '0'); | 39 assert_equals(data[1], 0); |
| 44 shouldBe('data[2]', '0'); | 40 assert_equals(data[2], 0); |
| 45 | 41 |
| 46 if (adoptCanvas) | 42 if (adoptCanvas) |
| 47 parent.appendChild(canvas); | 43 parent.appendChild(canvas); |
| 48 parent.removeChild(frame); | 44 parent.removeChild(frame); |
| 49 | 45 |
| 50 imageData = ctx.getImageData(100, 100, 1, 1); | 46 imageData = ctx.getImageData(100, 100, 1, 1); |
| 51 data = imageData.data; | 47 data = imageData.data; |
| 52 if (adoptCanvas) { | 48 if (adoptCanvas) { |
| 53 shouldBe('data[0]', '255'); | 49 assert_equals(data[0], 255); |
| 54 } else { | 50 } else { |
| 55 // GC causes active DOM stop and canvas loses its context. | 51 // GC causes active DOM stop and canvas loses its context. |
| 56 shouldBe('data[0]', '0'); | 52 assert_equals(data[0], 0); |
| 57 } | 53 } |
| 58 shouldBe('data[1]', '0'); | 54 assert_equals(data[1], 0); |
| 59 shouldBe('data[2]', '0'); | 55 assert_equals(data[2], 0); |
| 60 } | 56 } |
| 61 </script> | 57 </script> |
| 62 <div id="parent"> | 58 <div id="parent"> |
| 63 <iframe id="frame1" src="resources/canvas-fill-for-iframe.html" onload="fram
eLoaded()"></iframe> | 59 <iframe id="frame1" src="resources/canvas-fill-for-iframe.html" onload="fram
eLoaded()"></iframe> |
| 64 <iframe id="frame2" src="resources/canvas-fill-for-iframe.html" onload="fram
eLoaded()"></iframe> | 60 <iframe id="frame2" src="resources/canvas-fill-for-iframe.html" onload="fram
eLoaded()"></iframe> |
| 65 </div> | 61 </div> |
| 66 </body> | 62 </body> |
| 67 </html> | 63 </html> |
| OLD | NEW |