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 if (toString.call(ctx) != '[object OffscreenCanvasRenderingContext2D]') { |
11 aCanvas.height = 100; | 11 self.postMessage("aCanvas.getContext('2d') does not return [object Off
screenCanvasRenderingContext2D]"); |
12 self.postMessage({version:'second', width:aCanvas.width, height:aCanvas.height
}); | 12 } else { |
| 13 self.postMessage("success"); |
| 14 } |
| 15 } catch (e) { |
| 16 self.postMessage(e); |
| 17 } |
13 }; | 18 }; |
14 </script> | 19 </script> |
15 | 20 |
16 <script> | 21 <script> |
17 jsTestIsAsync = true; | 22 jsTestIsAsync = true; |
18 description("Tests that the OffscreenCanvas can be constructed on a worker threa
d."); | 23 description("Tests that the 2D context of OffscreenCanvas can be constructed on
a worker thread."); |
19 | |
20 var width; | |
21 var height; | |
22 | 24 |
23 function makeWorker(script) { | 25 function makeWorker(script) { |
24 var blob = new Blob([script]); | 26 var blob = new Blob([script]); |
25 return new Worker(URL.createObjectURL(blob)); | 27 return new Worker(URL.createObjectURL(blob)); |
26 } | 28 } |
27 | 29 |
28 function handleMessageFromWorker(msg) { | 30 function handleMessageFromWorker(msg) |
29 width = msg.data.width; | 31 { |
30 height = msg.data.height; | 32 if (msg.data == "success") { |
31 switch (msg.data.version) { | 33 testPassed("getContext('2d') correctly returns [object OffscreenCanvasRe
nderingContext2D]."); |
32 case 'first': | 34 } else { |
33 shouldBe('width', '50'); | 35 testFailed(msg.data); |
34 shouldBe('height', '50'); | 36 } |
35 break; | 37 finishJSTest(); |
36 case 'second': | |
37 shouldBe('width', '100'); | |
38 shouldBe('height', '100'); | |
39 finishJSTest(); | |
40 break; | |
41 default: | |
42 testFailed("Unexpected failure"); | |
43 break; | |
44 } | |
45 } | 38 } |
46 | 39 |
47 var worker = makeWorker(document.getElementById('myWorker').textContent); | 40 var worker = makeWorker(document.getElementById('myWorker').textContent); |
48 worker.addEventListener('message', handleMessageFromWorker); | 41 worker.addEventListener('message', handleMessageFromWorker); |
49 worker.postMessage(""); | 42 worker.postMessage(""); |
50 </script> | 43 </script> |
51 | 44 |
52 </body> | 45 </body> |
53 </html> | 46 </html> |
OLD | NEW |