| 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
|
| index 5e6245af1190f4b1f4f8cab66e9c3aff9b2e6fda..64a709585b0265ff48a728a6393167a7d853b3a3 100644
|
| --- a/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
|
| +++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
|
| @@ -13,7 +13,7 @@ var aCanvas = document.createElement('canvas');
|
| aCanvas.setAttribute('width', '10');
|
| aCanvas.setAttribute('height', '10');
|
| var aCtx = aCanvas.getContext('2d');
|
| -aCtx.fillStyle = 'green';
|
| +aCtx.fillStyle = 'rgb(0, 255, 0)';
|
| aCtx.fillRect(0, 0, 20, 20);
|
|
|
| var bCanvas = document.createElement('canvas');
|
| @@ -24,7 +24,7 @@ bCtx.fillStyle = 'red';
|
| bCtx.fillRect(0, 0, 20, 20);
|
|
|
| var canvas = document.createElement('canvas');
|
| -canvas.setAttribute('width', '40');
|
| +canvas.setAttribute('width', '50');
|
| canvas.setAttribute('height', '30');
|
| var ctx = canvas.getContext('2d');
|
| document.body.appendChild(canvas);
|
| @@ -35,71 +35,105 @@ image.src = aCanvas.toDataURL();
|
|
|
| var d;
|
|
|
| +var imageLoaded = false;
|
| +var blobLoaded = false;
|
| +
|
| function imageLoaded() {
|
| - d = aCtx.getImageData(0, 0, 10, 10);
|
| - createImageBitmap(image).then(callback('Image'), shouldNotBeCalled);
|
| - createImageBitmap(d).then(callback('Data'), shouldNotBeCalled);
|
| - createImageBitmap(aCanvas).then(callback('Canvas'), shouldNotBeCalled);
|
| + imageLoaded = true;
|
| + loaded();
|
| +}
|
| +
|
| +var xhr = new XMLHttpRequest();
|
| +xhr.open("GET", 'resources/pattern.png');
|
| +xhr.responseType = 'blob';
|
| +xhr.send();
|
| +xhr.onload = function() {
|
| + blob = xhr.response;
|
| + blobLoaded = true;
|
| + loaded();
|
| }
|
|
|
| -var imageBitmapImage, imageBitmapData, imageBitmapCanvas;
|
| -var i = 0;
|
| +function loaded() {
|
| + if (imageLoaded && blobLoaded) {
|
| + d = aCtx.getImageData(0, 0, 10, 10);
|
| + createImageBitmap(image).then(callback('Image'));
|
| + createImageBitmap(d).then(callback('Data'));
|
| + createImageBitmap(aCanvas).then(callback('Canvas'));
|
| + // The blob image has a green square at (x,y,w,h) = (10, 0, 10, 10).
|
| + createImageBitmap(blob, 10, 0, 10, 10).then(callback('Blob'));
|
| + }
|
| +}
|
| +
|
| +var imageBitmaps = {};
|
| +
|
| function callback(name) {
|
| var name = name;
|
| return function(imageBitmap) {
|
| switch(name) {
|
| case 'Image':
|
| - imageBitmapImage = imageBitmap;
|
| - image.onload = draw(imageBitmapImage);
|
| + imageBitmaps.image = imageBitmap;
|
| + image.onload = function() {
|
| + ctx.drawImage(imageBitmaps.image, 0, 0);
|
| + checkIfDone();
|
| + };
|
| image.src = bCanvas.toDataURL();
|
| - createImageBitmap(imageBitmapImage).then(callback('ImageBitmapImage', shouldNotBeCalled));
|
| + createImageBitmap(imageBitmaps.image).then(callback('ImageBitmapImage'));
|
| break;
|
| case 'Data':
|
| - imageBitmapData = imageBitmap;
|
| + imageBitmaps.data = imageBitmap;
|
| d = 0;
|
| - ctx.drawImage(imageBitmapData, 11, 0);
|
| - createImageBitmap(imageBitmapData).then(callback('ImageBitmapData', shouldNotBeCalled));
|
| + ctx.drawImage(imageBitmaps.data, 11, 0);
|
| + createImageBitmap(imageBitmaps.data).then(callback('ImageBitmapData'));
|
| checkIfDone();
|
| break;
|
| case 'Canvas':
|
| - imageBitmapCanvas = imageBitmap;
|
| + imageBitmaps.canvas = imageBitmap;
|
| aCtx.clearRect(0, 0, 10, 10);
|
| - ctx.drawImage(imageBitmapCanvas, 22, 0);
|
| - createImageBitmap(imageBitmapCanvas).then(callback('ImageBitmapCanvas', shouldNotBeCalled));
|
| + ctx.drawImage(imageBitmaps.canvas, 22, 0);
|
| + createImageBitmap(imageBitmaps.canvas).then(callback('ImageBitmapCanvas'));
|
| + checkIfDone();
|
| + break;
|
| + case 'Blob':
|
| + imageBitmaps.blob = imageBitmap;
|
| + blob = 0;
|
| + ctx.drawImage(imageBitmaps.blob, 33, 0);
|
| + createImageBitmap(imageBitmaps.blob).then(callback('ImageBitmapBlob'));
|
| checkIfDone();
|
| break;
|
| case 'ImageBitmapImage':
|
| - imageBitmapImage = 0;
|
| + imageBitmaps.image = 0;
|
| ctx.drawImage(imageBitmap, 0, 11);
|
| checkIfDone();
|
| break;
|
| case 'ImageBitmapData':
|
| d = 0;
|
| - imageBitmapData = 0;
|
| + imageBitmaps.data = 0;
|
| ctx.drawImage(imageBitmap, 11, 11);
|
| checkIfDone();
|
| break;
|
| case 'ImageBitmapCanvas':
|
| aCtx.clearRect(0, 0, 10, 10);
|
| - imageBitmapCanvas = 0;
|
| + imageBitmaps.canvas = 0;
|
| ctx.drawImage(imageBitmap, 22, 11);
|
| checkIfDone();
|
| break;
|
| + case 'ImageBitmapBlob':
|
| + aCtx.clearRect(0, 0, 10, 10);
|
| + imageBitmaps.blob = 0;
|
| + ctx.drawImage(imageBitmap, 33, 11);
|
| + checkIfDone();
|
| + break;
|
| }
|
| }
|
| }
|
|
|
| -function draw(imageBitmap) {
|
| - ctx.drawImage(imageBitmap, 0, 0);
|
| - checkIfDone();
|
| -}
|
| -
|
| +var checkNum = 0;
|
| function checkIfDone() {
|
| - if (++i == 6 && window.testRunner)
|
| + if (++checkNum == 8 && window.testRunner)
|
| window.testRunner.notifyDone();
|
| }
|
|
|
| </script>
|
| -<p>There should be 6 green squares displayed in a 2 row by 3 column grid.</p>
|
| +<p>There should be 8 green squares displayed in a 2 row by 4 column grid.</p>
|
| </body>
|
| </html>
|
|
|