| 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..53ba1f1b6e8e83d9652b02b34d6f202f2d21e8da
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
|
| @@ -0,0 +1,100 @@
|
| +<html>
|
| +<body>
|
| +<script>
|
| +if (window.testRunner)
|
| + window.testRunner.waitUntilDone();
|
| +
|
| +var aCanvas = document.createElement('canvas');
|
| +aCanvas.setAttribute('width', '10');
|
| +aCanvas.setAttribute('height', '10');
|
| +var aCtx = aCanvas.getContext('2d');
|
| +aCtx.fillStyle = 'green';
|
| +aCtx.fillRect(0, 0, 20, 20);
|
| +
|
| +var bCanvas = document.createElement('canvas');
|
| +bCanvas.setAttribute('width', '10');
|
| +bCanvas.setAttribute('height', '10');
|
| +var bCtx = bCanvas.getContext('2d');
|
| +bCtx.fillStyle = 'red';
|
| +bCtx.fillRect(0, 0, 20, 20);
|
| +
|
| +var canvas = document.createElement('canvas');
|
| +canvas.setAttribute('width', '40');
|
| +canvas.setAttribute('height', '30');
|
| +var ctx = canvas.getContext('2d');
|
| +document.body.appendChild(canvas);
|
| +
|
| +var image = new Image();
|
| +image.onload = imageLoaded;
|
| +image.src = aCanvas.toDataURL();
|
| +
|
| +var d;
|
| +
|
| +function imageLoaded() {
|
| + d = aCtx.getImageData(0, 0, 10, 10);
|
| + 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, 11, 0);
|
| + createImageBitmap(imageBitmapData, callback('ImageBitmapData'));
|
| + checkIfDone();
|
| + break;
|
| + case 'Canvas':
|
| + imageBitmapCanvas = imageBitmap;
|
| + aCtx.clearRect(0, 0, 10, 10);
|
| + ctx.drawImage(imageBitmapCanvas, 22, 0);
|
| + createImageBitmap(imageBitmapCanvas, callback('ImageBitmapCanvas'));
|
| + checkIfDone();
|
| + break;
|
| + case 'ImageBitmapImage':
|
| + imageBitmapImage = 0;
|
| + ctx.drawImage(imageBitmap, 0, 11);
|
| + checkIfDone();
|
| + break;
|
| + case 'ImageBitmapData':
|
| + d = 0;
|
| + imageBitmapData = 0;
|
| + ctx.drawImage(imageBitmap, 11, 11);
|
| + checkIfDone();
|
| + break;
|
| + case 'ImageBitmapCanvas':
|
| + aCtx.clearRect(0, 0, 10, 10);
|
| + imageBitmapCanvas = 0;
|
| + ctx.drawImage(imageBitmap, 22, 11);
|
| + 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>
|
|
|