OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>Block reading offscreen canvas 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 var message1 = message1; |
| 12 try { |
| 13 var imageData = context.getImageData(0, 0, 100, 100); |
| 14 message1 = "getImageData should throw."; |
| 15 } catch (e) { |
| 16 name1 = e.name; |
| 17 message1 = e.message; |
| 18 } |
| 19 |
| 20 var name2 = ""; |
| 21 var message2; |
| 22 try { |
| 23 context.drawImage(e.data, 0, 0, 100, 100); |
| 24 var imageData = context.getImageData(0, 0, 100, 100); |
| 25 message2 = "getImageData should throw"; |
| 26 } catch (e) { |
| 27 name2 = e.name; |
| 28 message2 = e.message; |
| 29 } |
| 30 |
| 31 self.postMessage([name1, message1, name2, message2]); |
| 32 }; |
| 33 </script> |
| 34 <script> |
| 35 if (window.testRunner) { |
| 36 testRunner.overridePreference("WebKitDisableReadingFromCanvas", true); |
| 37 testRunner.waitUntilDone(); |
| 38 } |
| 39 |
| 40 |
| 41 var htmlCanvas = document.createElement('canvas'); |
| 42 htmlCanvas.width = 100; |
| 43 htmlCanvas.height = 100; |
| 44 var htmlCtx = htmlCanvas.getContext('2d'); |
| 45 htmlCtx.fillStyle = "blue"; |
| 46 htmlCtx.fillRect(0, 0, 100, 100); |
| 47 createImageBitmap(htmlCanvas).then(consumeImageBitmap); |
| 48 |
| 49 function consumeImageBitmap(htmlImage) { |
| 50 var blob = new Blob([document.getElementById('myWorker').textContent]); |
| 51 var worker = new Worker(URL.createObjectURL(blob)); |
| 52 worker.addEventListener('message', msg => { |
| 53 assert_equals(msg.data[0], "SecurityError", msg.data[1]); |
| 54 assert_equals(msg.data[2], "SecurityError", msg.data[3]); |
| 55 |
| 56 if (window.testRunner) { |
| 57 testRunner.notifyDone(); |
| 58 } |
| 59 }); |
| 60 worker.postMessage(htmlImage, [htmlImage]); |
| 61 } |
| 62 </script> |
OLD | NEW |