OLD | NEW |
1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../resources/testharness.js"></script> | 4 <script src="../../resources/testharness.js"></script> |
5 <script src="../../resources/testharnessreport.js"></script> | 5 <script src="../../resources/testharnessreport.js"></script> |
6 </head> | 6 </head> |
7 <body> | 7 <body> |
8 <script> | 8 <script> |
9 async_test(function(t) { | 9 async_test(function(t) { |
10 var canvas = document.createElement('canvas'); | 10 var canvas = document.createElement('canvas'); |
11 var offscreen = canvas.transferControlToOffscreen(); | 11 var offscreen = canvas.transferControlToOffscreen(); |
12 var ctx = offscreen.getContext('2d'); | 12 var ctx = offscreen.getContext('2d'); |
13 ctx.fillStyle = '#0f0'; | 13 ctx.fillStyle = '#0f0'; |
14 ctx.fillRect(0, 0, canvas.width, canvas.height); | 14 ctx.fillRect(0, 0, canvas.width, canvas.height); |
15 ctx.commit(); | 15 ctx.commit(); |
16 | 16 |
17 var testCanvas = document.createElement('canvas'); | 17 var testCanvas = document.createElement('canvas'); |
18 var testCtx = testCanvas.getContext('2d'); | 18 var testCtx = testCanvas.getContext('2d'); |
19 | 19 |
20 createImageBitmap(canvas).then(image => { | 20 createImageBitmap(canvas).then(image => { |
21 testCtx.drawImage(image, 0, 0); | 21 testCtx.drawImage(image, 0, 0); |
22 t.step( function() { | 22 t.step( function() { |
23 var pixel = testCtx.getImageData(0, 0, 1, 1).data; | 23 var pixel = testCtx.getImageData(0, 0, 1, 1).data; |
24 var expectedValue = [0, 0, 0, 0]; // pixel is blank because commit() is as
ync | 24 var expectedValue = [0, 0, 0, 0]; // pixel is blank because commit() is as
ync |
25 assert_array_equals(pixel, expectedValue, "Verify that commit() is not syn
chronous."); | 25 assert_array_equals(pixel, expectedValue, "Verify that commit() is not syn
chronous."); |
26 }); | 26 }); |
27 | 27 |
28 // The call to setTimeout acts as a synchronization barrier to guarantee tha
t | 28 // TODO(junov): Use the Promise returned by commit to schedule after the |
29 // the commit has propagated. | 29 // commit. (crbug.com/709484) |
30 setTimeout(function() { | 30 setTimeout(function() { |
31 createImageBitmap(canvas).then(image => { | 31 setTimeout(function() { |
32 testCtx.drawImage(image, 0, 0); | 32 createImageBitmap(canvas).then(image => { |
33 t.step( function() { | 33 testCtx.drawImage(image, 0, 0); |
34 var pixel = testCtx.getImageData(0, 0, 1, 1).data; | 34 t.step( function() { |
35 var expectedValue = [0, 255, 0, 255]; | 35 var pixel = testCtx.getImageData(0, 0, 1, 1).data; |
36 assert_array_equals(pixel, expectedValue, "Verify that async update of
placeholder propagated through createImageData"); | 36 var expectedValue = [0, 255, 0, 255]; |
| 37 assert_array_equals(pixel, expectedValue, "Verify that async update
of placeholder propagated through createImageData"); |
| 38 }); |
| 39 t.done(); |
37 }); | 40 }); |
38 t.done(); | 41 }, 0); |
39 }); | |
40 }, 0); | 42 }, 0); |
41 }); | 43 }); |
42 }, "Test whether createImageBitmap on a placeholder canvas captures the image co
mmitted to the associated OffscreenCanvas."); | 44 }, "Test whether createImageBitmap on a placeholder canvas captures the image co
mmitted to the associated OffscreenCanvas."); |
43 </script> | 45 </script> |
44 </body> | 46 </body> |
45 </html> | 47 </html> |
OLD | NEW |