OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>Block reading offscreen canvas in worker via StrictCanvasTainting setting
</title> |
| 3 <script src="/resources/testharness.js"></script> |
| 4 <script src="/resources/testharnessreport.js"></script> |
| 5 <script id='myWorker' type='text/worker'> |
| 6 self.onmessage = function(e) { |
| 7 var offCanvas = new OffscreenCanvas(100, 100); |
| 8 var context = offCanvas.getContext('2d'); |
| 9 |
| 10 var name1; |
| 11 try { |
| 12 var imageData = context.getImageData(0, 0, 100, 100); |
| 13 name1 = "NoError"; |
| 14 } catch (ex) { |
| 15 name1 = ex.name; |
| 16 } |
| 17 |
| 18 var name2; |
| 19 try { |
| 20 var imageCanvas = new OffscreenCanvas(100, 100); |
| 21 var imageCtx = imageCanvas.getContext('2d'); |
| 22 imageCtx.fillStyle = "blue"; |
| 23 imageCtx.fillRect(0, 0, 100, 100); |
| 24 var imageBitMap = imageCanvas.transferToImageBitmap(); |
| 25 |
| 26 context.drawImage(imageBitMap, 0, 0, 100, 100); |
| 27 var imageData = context.getImageData(0, 0, 100, 100); |
| 28 name2 = "NoError"; |
| 29 } catch (ex) { |
| 30 name2 = ex.name; |
| 31 } |
| 32 self.postMessage([name1, name2]); |
| 33 }; |
| 34 </script> |
| 35 <script> |
| 36 if (window.testRunner) { |
| 37 testRunner.overridePreference("WebKitDisableReadingFromCanvas", true); |
| 38 } |
| 39 |
| 40 async_test(function() { |
| 41 var blob = new Blob([document.getElementById('myWorker').textContent]); |
| 42 var worker = new Worker(URL.createObjectURL(blob)); |
| 43 worker.onmessage = this.step_func(function (e) { |
| 44 assert_equals(e.data[0], "SecurityError", "First test on getImageData"); |
| 45 assert_equals(e.data[1], "SecurityError", "Second test on getImageData"); |
| 46 this.done(); |
| 47 }); |
| 48 |
| 49 worker.postMessage(""); |
| 50 }, "getImageData should throw on worker"); |
| 51 |
| 52 |
| 53 </script> |
OLD | NEW |