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> |