Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(531)

Unified Diff: LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html

Issue 20748002: Blob creation methods for ImageBitmap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add OWNERS file. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698