Chromium Code Reviews| Index: LayoutTests/fast/canvas/canvas-createImageBitmap-out-of-bounds-src.html |
| diff --git a/LayoutTests/fast/canvas/canvas-createImageBitmap-out-of-bounds-src.html b/LayoutTests/fast/canvas/canvas-createImageBitmap-out-of-bounds-src.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..48061e08184d92a29cf7bd16d75dfaa1defa9d65 |
| --- /dev/null |
| +++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-out-of-bounds-src.html |
| @@ -0,0 +1,59 @@ |
| +<html> |
| +<body> |
| +<canvas id="c1" width="250" height="250"></canvas> |
| +<canvas id="c2" width="250" height="250"></canvas> |
| +<br> |
| +<canvas id="c3" width="250" height="250"></canvas> |
| +<canvas id="c4" width="250" height="250"></canvas> |
| +<script type="text/javascript"> |
| +if (window.testRunner) |
| + testRunner.waitUntilDone(); |
| + |
| +var canvas1 = document.getElementById('c1'); |
| +var canvas2 = document.getElementById('c2'); |
| +var canvas3 = document.getElementById('c3'); |
| +var canvas4 = document.getElementById('c4'); |
| +var bgcanvas = document.createElement('canvas'); |
| +bgcanvas.width = 100; |
| +bgcanvas.height = 100; |
| +var bgctx = bgcanvas.getContext('2d'); |
| +bgctx.fillStyle = 'green'; |
| +bgctx.fillRect(0, 0, bgcanvas.width, bgcanvas.height); |
| +var greenSquareURL = bgcanvas.toDataURL(); |
| +var img = new Image(); |
| +img.onload = imageLoaded; |
| +img.src = greenSquareURL; |
| +var ctx1 = canvas1.getContext('2d'); |
| +var ctx2 = canvas2.getContext('2d'); |
| +var ctx3 = canvas3.getContext('2d'); |
| +var ctx4 = canvas4.getContext('2d'); |
| + |
| +function imageLoaded() { |
| + createImageBitmap(img, imageBitmapCallback(ctx1)); |
| + createImageBitmap(img, imageBitmapCallback(ctx2), -50, -50, 100, 100); |
| + createImageBitmap(img, imageBitmapCallback(ctx3), 50, 50, 100, 100); |
| + createImageBitmap(img, imageBitmapCallback(ctx4), -100, -100, 300, 300); |
| +} |
| + |
| +var pending = 0; |
| +function imageBitmapCallback(ctx) { |
| + pending++; |
| + var ctx = ctx; |
| + return function(imageBitmap) { |
| + pending--; |
| + ctx.drawImage(imageBitmap, -100, -100, 300, 300, -25, -25, 300, 300); |
| + ctx.drawImage(imageBitmap, -100, -100, 200, 200, -25, -25, 100, 100); |
| + ctx.drawImage(imageBitmap, 0, -100, 100, 200, 75, -25, 100, 100); |
| + ctx.drawImage(imageBitmap, 0, -100, 200, 200, 175, -25, 100, 100); |
| + ctx.drawImage(imageBitmap, -100, 0, 200, 100, -25, 75, 100, 100); |
|
Stephen White
2013/07/25 18:01:07
Nit: spacing is a bit weird here.
|
| + ctx.drawImage(imageBitmap, 0, 0, 200, 100, 175, 75, 100, 100); |
| + ctx.drawImage(imageBitmap, -100, 0, 200, 200, -25, 175, 100, 100); |
| + ctx.drawImage(imageBitmap, 0, 0, 100, 200, 75, 175, 100, 100); |
| + ctx.drawImage(imageBitmap, 0, 0, 200, 200, 175, 175, 100, 100); |
| + if (!pending && window.testRunner) |
| + testRunner.notifyDone(); |
| + } |
| +} |
| + |
| +</script> |
| +</body></html> |