Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / paint / invalidation / spv2 / canvas-putImageData.html
blob1af7766d7ff57b87d1aaa79b59a3408270b7f2cf
1 <!-- Based on fast/repaint/canvas-putImageData.html -->
2 <!-- Test for https://bugs.webkit.org/show_bug.cgi?id=46319 -->
3 <head>
4 <script src="resources/paint-invalidation-test.js"></script>
5 </head>
6 <body>
7 <canvas id="canvas" width="100" height="100"></canvas>
8 <script>
9 var canvas = document.getElementById('canvas');
10 var ctx = canvas.getContext('2d');
12 // prepare imagedata
13 ctx.fillStyle = "rgb(255, 0, 0)"; ctx.fillRect(0, 0, 100, 100); // red background
14 ctx.fillStyle = "rgb(0, 255, 0)"; ctx.fillRect(10, 10, 10, 10); // inset green square
15 var imageDataGreen = ctx.getImageData(10, 10, 10, 10);
16 var imageDataRedWithInsetGreen = ctx.getImageData(0, 0, 30, 30);
18 // clear canvas to dark green
19 ctx.fillStyle = "rgb(0, 128, 0)";
20 ctx.fillRect(0, 0, 100, 100);
22 // fill target locations with dark red
23 ctx.fillStyle = "rgb(128, 0, 0)";
24 ctx.fillRect(0, 0, 10, 10);
25 ctx.fillRect(40, 40, 10, 10);
26 ctx.fillRect(80, 80, 10, 10);
27 window.testIsAsync = true;
29 window.expectedPaintInvalidationObjects = [
30 "LayoutHTMLCanvas CANVAS id='canvas'",
32 function paintInvalidationTest()
34 // patch up red squares with putImageData
35 ctx.putImageData(imageDataGreen, 0, 0);
36 ctx.putImageData(imageDataGreen, 40, 40);
37 ctx.putImageData(imageDataRedWithInsetGreen, 70, 70, 10, 10, 10, 10);
38 // Because canvas invalidations are processed at the end of the current task,
39 // the repaint test has to end in a subsequent task in order to capture the repaint.
40 setTimeout(finishPaintInvalidationTest, 0);
43 window.onload = runPaintInvalidationTest;
44 </script>
45 </body>