OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <script src="../../resources/js-test.js"></script> | 3 <script src="../../resources/js-test.js"></script> |
4 <body> | 4 <body> |
5 <script id="myWorker" type="text/worker"> | 5 <script id="myWorker" type="text/worker"> |
6 self.onmessage = function(e) { | 6 self.onmessage = function(e) { |
7 var aCanvas = new OffscreenCanvas(50, 50); | 7 var aCanvas = new OffscreenCanvas(50, 50); |
8 self.postMessage({version:'first', width:aCanvas.width, height:aCanvas.height}
); | 8 try { |
9 | 9 var ctx = aCanvas.getContext('2d'); |
10 aCanvas.width = 100; | 10 self.postMessage({outcome:"success", errorMessage:""}); |
11 aCanvas.height = 100; | 11 } catch (e) { |
12 self.postMessage({version:'second', width:aCanvas.width, height:aCanvas.height
}); | 12 self.postMessage({outcome:"error", errorMessage:e}); |
| 13 } |
13 }; | 14 }; |
14 </script> | 15 </script> |
15 | 16 |
16 <script> | 17 <script> |
17 jsTestIsAsync = true; | 18 jsTestIsAsync = true; |
18 description("Tests that the OffscreenCanvas can be constructed on a worker threa
d."); | 19 description("Tests that the 2D context of OffscreenCanvas can be constructed on
a worker thread."); |
19 | |
20 var width; | |
21 var height; | |
22 | 20 |
23 function makeWorker(script) { | 21 function makeWorker(script) { |
24 var blob = new Blob([script]); | 22 var blob = new Blob([script]); |
25 return new Worker(URL.createObjectURL(blob)); | 23 return new Worker(URL.createObjectURL(blob)); |
26 } | 24 } |
27 | 25 |
28 function handleMessageFromWorker(msg) { | 26 function handleMessageFromWorker(msg) { |
29 width = msg.data.width; | 27 switch (msg.data.outcome) { |
30 height = msg.data.height; | 28 case 'success': |
31 switch (msg.data.version) { | 29 testPassed("getContext('2d') does not thrown."); |
32 case 'first': | |
33 shouldBe('width', '50'); | |
34 shouldBe('height', '50'); | |
35 break; | 30 break; |
36 case 'second': | 31 case 'error': |
37 shouldBe('width', '100'); | 32 testFailed(msg.data.errorMessage); |
38 shouldBe('height', '100'); | |
39 finishJSTest(); | |
40 break; | 33 break; |
41 default: | 34 default: |
42 testFailed("Unexpected failure"); | 35 testFailed("Unexpected failure"); |
43 break; | 36 break; |
44 } | 37 } |
| 38 finishJSTest(); |
45 } | 39 } |
46 | 40 |
47 var worker = makeWorker(document.getElementById('myWorker').textContent); | 41 var worker = makeWorker(document.getElementById('myWorker').textContent); |
48 worker.addEventListener('message', handleMessageFromWorker); | 42 worker.addEventListener('message', handleMessageFromWorker); |
49 worker.postMessage(""); | 43 worker.postMessage(""); |
50 </script> | 44 </script> |
51 | 45 |
52 </body> | 46 </body> |
53 </html> | 47 </html> |
OLD | NEW |