Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <script src="../../resources/testharness.js"></script> | |
| 3 <script src="../../resources/testharnessreport.js"></script> | |
| 4 <script> | |
| 5 // This test aims to ensure that OffscreenCanvas.commit() does not | |
|
xlai (Olivia)
2017/01/24 20:54:12
Changing the pixel test to layout test.
| |
| 6 // crash for a placeholder canvas under frameless document. | |
| 7 // Since the document is invisible, the resultant image should be | |
| 8 // not visible too. But users must be able to draw to the OffscreenCanvas | |
| 9 // and do canvas-operations on the frameless placeholder canvas. | |
| 10 // TODO(crbug.com/683172): Modify this test after handling for | |
| 11 // frameless canvas is done. | |
| 12 function createFramelessCanvas() { | |
| 13 var framelessDoc = document.implementation.createHTMLDocument("frameless"); | |
| 14 var canvas = framelessDoc.createElement("canvas"); | |
| 15 canvas.width = 50; | |
| 16 canvas.height = 50; | |
| 17 return canvas; | |
| 18 } | |
| 19 | |
| 20 function transferControlAndCommit(canvas) { | |
| 21 var offscreenCanvas = canvas.transferControlToOffscreen(); | |
| 22 var ctx = offscreenCanvas.getContext("2d"); | |
| 23 ctx.fillStyle = "blue"; | |
| 24 ctx.fillRect(0, 0, 50, 50); | |
| 25 ctx.commit(); | |
| 26 return offscreenCanvas; | |
| 27 } | |
| 28 | |
| 29 test(function() { | |
| 30 var offscreenCanvas = transferControlAndCommit(createFramelessCanvas()); | |
| 31 var ctx = offscreenCanvas.getContext("2d"); | |
| 32 var pixels = ctx.getImageData(0, 0, 1, 1).data; | |
| 33 assert_array_equals(pixels, [0, 0, 255, 255]); | |
| 34 }, "Verify that the getImageData() works on the OffscreenCanvas context of a fra meless canvas"); | |
| 35 | |
| 36 async_test(function(t) { | |
| 37 var canvas = createFramelessCanvas(); | |
| 38 var offscreenCanvas = transferControlAndCommit(canvas); | |
| 39 | |
| 40 var c = document.createElement("canvas"); | |
| 41 c.width = 50; | |
| 42 c.height = 50; | |
| 43 var ctx2 = c.getContext("2d"); | |
| 44 setTimeout(function() { | |
| 45 ctx2.drawImage(canvas, 0, 0); | |
| 46 var pixels = ctx2.getImageData(0, 0, 1, 1).data; | |
| 47 t.step(function() { | |
| 48 assert_array_equals(pixels, [0, 0, 255, 255]); | |
| 49 }); | |
| 50 t.done(); | |
| 51 }, 0); | |
| 52 }, "Verify that the placeholder canvas can be used as an image source"); | |
| 53 </script> | |
| OLD | NEW |