Chromium Code Reviews| Index: LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html |
| diff --git a/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4d88af976ce1494b2eb762c3f7a3c0ecbd6710bd |
| --- /dev/null |
| +++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html |
| @@ -0,0 +1,101 @@ |
| +<html> |
| +<body> |
| +<script> |
| +if (window.testRunner) |
| + window.testRunner.waitUntilDone(); |
| + |
| +// Create auxiliary canvas to draw to and create an image from. |
|
Stephen White
2013/07/25 18:01:07
Grammar nit: ending a sentence with a preposition
|
| +var aCanvas = document.createElement('canvas'); |
| +aCanvas.setAttribute('width', '100'); |
| +aCanvas.setAttribute('height', '100'); |
| +var aCtx = aCanvas.getContext('2d'); |
| +aCtx.fillStyle = 'green'; |
| +aCtx.fillRect(0, 0, 200, 200); |
| + |
| +var bCanvas = document.createElement('canvas'); |
| +bCanvas.setAttribute('width', '100'); |
| +bCanvas.setAttribute('height', '100'); |
| +var bCtx = bCanvas.getContext('2d'); |
| +bCtx.fillStyle = 'red'; |
| +bCtx.fillRect(0, 0, 200, 200); |
| + |
| +var canvas = document.createElement('canvas'); |
| +canvas.setAttribute('width', '400'); |
| +canvas.setAttribute('height', '300'); |
| +var ctx = canvas.getContext('2d'); |
| +document.body.appendChild(canvas); |
| + |
| +var image = new Image(); |
| +image.onload = imageLoaded; |
| +image.src = aCanvas.toDataURL(); // set a data URI of the base64 enconded image as the source |
|
Stephen White
2013/07/25 18:01:07
Nit: enconded. Also, no punctuation
|
| + |
| +var d; |
| + |
| +function imageLoaded() { |
| + d = aCtx.getImageData(0, 0, 100, 100); |
| + createImageBitmap(image, callback('Image')); |
| + createImageBitmap(d, callback('Data')); |
| + createImageBitmap(aCanvas, callback('Canvas')); |
| +} |
| + |
| +var imageBitmapImage, imageBitmapData, imageBitmapCanvas; |
| +var i = 0; |
| +function callback(name) { |
| + var name = name; |
| + return function(imageBitmap) { |
| + switch(name) { |
| + case 'Image': |
| + imageBitmapImage = imageBitmap; |
| + image.onload = draw(imageBitmapImage); |
| + image.src = bCanvas.toDataURL(); |
| + createImageBitmap(imageBitmapImage, callback('ImageBitmapImage')); |
| + break; |
| + case 'Data': |
| + imageBitmapData = imageBitmap; |
| + d = 0; |
| + ctx.drawImage(imageBitmapData, 110, 0); |
| + createImageBitmap(imageBitmapData, callback('ImageBitmapData')); |
| + checkIfDone(); |
| + break; |
| + case 'Canvas': |
| + imageBitmapCanvas = imageBitmap; |
| + aCtx.clearRect(0, 0, 100, 100); |
| + ctx.drawImage(imageBitmapCanvas, 220, 0); |
| + createImageBitmap(imageBitmapCanvas, callback('ImageBitmapCanvas')); |
| + checkIfDone(); |
| + break; |
| + case 'ImageBitmapImage': |
| + imageBitmapImage = 0; |
| + ctx.drawImage(imageBitmap, 0, 110); |
| + checkIfDone(); |
| + break; |
| + case 'ImageBitmapData': |
| + d = 0; |
| + imageBitmapData = 0; |
| + ctx.drawImage(imageBitmap, 110, 110); |
| + checkIfDone(); |
| + break; |
| + case 'ImageBitmapCanvas': |
| + aCtx.clearRect(0, 0, 100, 100); |
| + imageBitmapCanvas = 0; |
| + ctx.drawImage(imageBitmap, 220, 110); |
| + checkIfDone(); |
| + break; |
| + } |
| + } |
| +} |
| + |
| +function draw(imageBitmap) { |
| + ctx.drawImage(imageBitmap, 0, 0); |
| + checkIfDone(); |
| +} |
| + |
| +function checkIfDone() { |
| + if (++i == 6 && window.testRunner) |
| + window.testRunner.notifyDone(); |
| +} |
| + |
| +</script> |
| +<p>There should be 6 green squares displayed in a 2 row by 3 column grid.</p> |
| +</body> |
| +</html> |