| <style> |
| canvas { |
| width: 100px; |
| height: 100px; |
| background-color: black; |
| } |
| </style> |
| <body> |
| <p>This tests calling decode() for a animated image which is also an element in the DOM tree.</p> |
| <canvas id="canvas1"></canvas> |
| <canvas id="canvas2"></canvas> |
| <canvas id="canvas3"></canvas> |
| <canvas id="canvas4"></canvas> |
| <div></div> |
| <script> |
| function drawImageToCanvas(image, canvas) { |
| let context = canvas.getContext("2d"); |
| context.drawImage(image, 0, 0, canvas.width, canvas.height); |
| } |
| |
| if (window.internals && window.testRunner) { |
| internals.clearMemoryCache(); |
| internals.settings.setAnimatedImageDebugCanvasDrawingEnabled(true); |
| testRunner.waitUntilDone(); |
| } |
| |
| (async () => { |
| let image = new Image; |
| let parent = document.querySelector("div"); |
| parent.appendChild(image); |
| |
| image.src = "resources/animated-red-green-blue-repeat-2.gif"; |
| |
| await image.decode(); |
| drawImageToCanvas(image, canvas1); |
| |
| await image.decode(); |
| drawImageToCanvas(image, canvas2); |
| |
| await image.decode(); |
| drawImageToCanvas(image, canvas3); |
| |
| await image.decode(); |
| drawImageToCanvas(image, canvas4); |
| |
| parent.remove(); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| })(); |
| </script> |
| </body> |