OLD | NEW |
(Empty) | |
| 1 <script src="../../resources/testharness.js"></script> |
| 2 <script src="../../resources/testharnessreport.js"></script> |
| 3 <script id="myWorker" type="text/worker"> |
| 4 self.onmessage = function(e) { |
| 5 var offscreenCanvas = new OffscreenCanvas(4, 4); |
| 6 var ctx = offscreenCanvas.getContext("2d"); |
| 7 ctx.fillStyle = "#FF0102"; |
| 8 ctx.fillRect(0, 0, 4, 4); |
| 9 |
| 10 offscreenCanvas.convertToBlob().then(function(blob) { |
| 11 self.postMessage(blob); |
| 12 }); |
| 13 |
| 14 }; |
| 15 </script> |
| 16 <script type = 'text/javascript'> |
| 17 // In blink Layout Tests, flag "--enable-threaded-compositing", which is |
| 18 // essential for idle task running, is not turned on by default. This makes |
| 19 // it convenient to test the case when CanvasAsyncBlobCreator is idling for |
| 20 // too long and switching to forcing encoding in a normal task. |
| 21 // Passing this test means that the enforcing mechanism in |
| 22 // CanvasAsyncBlobCreator for OffscreenCanvas case is working as expected. |
| 23 var w = 4; |
| 24 var h = 4; |
| 25 |
| 26 var newImg = new Image(); |
| 27 function imageLoaded() { |
| 28 var canvas2 = document.createElement("canvas"); |
| 29 canvas2.width = w; |
| 30 canvas2.height = h; |
| 31 var ctx2 = canvas2.getContext("2d"); |
| 32 ctx2.drawImage(newImg, 0, 0, w, h); |
| 33 |
| 34 var imageData = ctx2.getImageData(0, 0, w, h).data; |
| 35 assert_equals(imageData[0], 255); |
| 36 assert_equals(imageData[1], 1); |
| 37 assert_equals(imageData[2], 2); |
| 38 assert_equals(imageData[3], 255); |
| 39 testImageFromOffscreen.done(); |
| 40 } |
| 41 |
| 42 var workerBlob = new Blob([document.getElementById('myWorker').textContent]); |
| 43 var worker = new Worker(URL.createObjectURL(workerBlob)); |
| 44 worker.addEventListener("message", function(msg) { |
| 45 var blob = msg.data; |
| 46 newImg.src = URL.createObjectURL(blob); |
| 47 }); |
| 48 |
| 49 var testImageFromOffscreen = async_test( |
| 50 "Check if the image loaded from blob returned by " + |
| 51 "OffscreenCanvas.convertToBlob() have expected image data values."); |
| 52 |
| 53 testImageFromOffscreen.step(function() { |
| 54 newImg.onload = testImageFromOffscreen.step_func(imageLoaded); |
| 55 worker.postMessage(""); |
| 56 }); |
| 57 |
| 58 </script> |
OLD | NEW |