| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
| 3 <script> | 3 <script> |
| 4 jsTestIsAsync = true; | 4 jsTestIsAsync = true; |
| 5 var worker = new Worker('./resources/worker-onmessage-noop.js'); | 5 var worker = new Worker('./resources/worker-onmessage-noop.js'); |
| 6 | 6 |
| 7 description("Tests that the close method of ImageBitmap does dispose the image d
ata"); | 7 description("Tests that the close method of ImageBitmap does dispose the image d
ata"); |
| 8 | 8 |
| 9 var imgHeight = 10; | 9 var imgHeight = 10; |
| 10 var imgWidth = 10; | 10 var imgWidth = 10; |
| 11 var imageData = new ImageData(10, 10); | 11 var imageData = new ImageData(10, 10); |
| 12 var bitmap; | 12 var bitmap; |
| 13 var ctx; |
| 13 createImageBitmap(imageData).then(imageBitmap => { | 14 createImageBitmap(imageData).then(imageBitmap => { |
| 14 bitmap = imageBitmap; | 15 bitmap = imageBitmap; |
| 15 shouldBe("bitmap.width", "imgWidth"); | 16 shouldBe("bitmap.width", "imgWidth"); |
| 16 shouldBe("bitmap.height", "imgHeight"); | 17 shouldBe("bitmap.height", "imgHeight"); |
| 17 | 18 |
| 18 // Apply structured clone to the bitmap, nothing should be changed | 19 // Apply structured clone to the bitmap, nothing should be changed |
| 19 worker.postMessage({data: bitmap}); | 20 worker.postMessage({data: bitmap}); |
| 20 shouldBe("bitmap.width", "imgWidth"); | 21 shouldBe("bitmap.width", "imgWidth"); |
| 21 shouldBe("bitmap.height", "imgHeight"); | 22 shouldBe("bitmap.height", "imgHeight"); |
| 22 | 23 |
| 23 // After calling close, the image data associated with the bitmap should no
longer exist | 24 // After calling close, the image data associated with the bitmap should no
longer exist |
| 24 bitmap.close(); | 25 bitmap.close(); |
| 25 shouldBe("bitmap.width", "0"); | 26 shouldBe("bitmap.width", "0"); |
| 26 shouldBe("bitmap.height", "0"); | 27 shouldBe("bitmap.height", "0"); |
| 27 | 28 |
| 29 var canvas = document.createElement("canvas"); |
| 30 canvas.width = imgWidth; |
| 31 canvas.height = imgHeight; |
| 32 ctx = canvas.getContext("2d"); |
| 33 shouldThrow("ctx.drawImage(bitmap, 0, 0)"); |
| 34 |
| 28 // Try to apply structured clone to an already closed bitmap | 35 // Try to apply structured clone to an already closed bitmap |
| 29 try { | 36 try { |
| 30 worker.postMessage({data: bitmap}); | 37 worker.postMessage({data: bitmap}); |
| 31 testFailed("Apply structured clone to an already closed bitmap passed un
expectedly"); | 38 testFailed("Apply structured clone to an already closed bitmap passed un
expectedly"); |
| 32 } catch(ex) { | 39 } catch(ex) { |
| 33 testPassed("Apply structured clone to an already closed bitmap is reject
ed as expected: " + ex); | 40 testPassed("Apply structured clone to an already closed bitmap is reject
ed as expected: " + ex); |
| 34 } | 41 } |
| 35 | 42 |
| 36 // Try to apply transfering to an already closed bitmap | 43 // Try to apply transfering to an already closed bitmap |
| 37 try { | 44 try { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 68 | 75 |
| 69 // Calling close to a neutered bitmap should be noop. | 76 // Calling close to a neutered bitmap should be noop. |
| 70 bitmap.close(); | 77 bitmap.close(); |
| 71 shouldBe("bitmap.width", "0"); | 78 shouldBe("bitmap.width", "0"); |
| 72 shouldBe("bitmap.height", "0"); | 79 shouldBe("bitmap.height", "0"); |
| 73 }); | 80 }); |
| 74 }).catch(function(ex) { | 81 }).catch(function(ex) { |
| 75 testFailed("Unexpected failure: " + ex); | 82 testFailed("Unexpected failure: " + ex); |
| 76 }).then(() => { finishJSTest(); }); | 83 }).then(() => { finishJSTest(); }); |
| 77 </script> | 84 </script> |
| OLD | NEW |