5 window.testRunner.waitUntilDone();
7 function shouldNotBeCalled() {
8 testFailed("Promise was rejected.");
12 var aCanvas = document.createElement('canvas');
13 aCanvas.setAttribute('width', '10');
14 aCanvas.setAttribute('height', '10');
15 var aCtx = aCanvas.getContext('2d');
16 aCtx.fillStyle = 'rgb(0, 255, 0)';
17 aCtx.fillRect(0, 0, 20, 20);
19 var bCanvas = document.createElement('canvas');
20 bCanvas.setAttribute('width', '10');
21 bCanvas.setAttribute('height', '10');
22 var bCtx = bCanvas.getContext('2d');
23 bCtx.fillStyle = 'red';
24 bCtx.fillRect(0, 0, 20, 20);
26 var canvas = document.createElement('canvas');
27 canvas.setAttribute('width', '50');
28 canvas.setAttribute('height', '30');
29 var ctx = canvas.getContext('2d');
30 document.body.appendChild(canvas);
32 var image = new Image();
33 image.onload = imageLoaded;
34 image.src = aCanvas.toDataURL();
38 var imageLoaded = false;
39 var blobLoaded = false;
41 function imageLoaded() {
46 var xhr = new XMLHttpRequest();
47 xhr.open("GET", 'resources/pattern.png');
48 xhr.responseType = 'blob';
50 xhr.onload = function() {
57 if (imageLoaded && blobLoaded) {
58 d = aCtx.getImageData(0, 0, 10, 10);
59 createImageBitmap(image).then(callback('Image'));
60 createImageBitmap(d).then(callback('Data'));
61 createImageBitmap(aCanvas).then(callback('Canvas'));
62 // The blob image has a green square at (x,y,w,h) = (10, 0, 10, 10).
63 createImageBitmap(blob, 10, 0, 10, 10).then(callback('Blob'));
67 var imageBitmaps = {};
69 function callback(name) {
71 return function(imageBitmap) {
74 imageBitmaps.image = imageBitmap;
75 image.onload = function() {
76 ctx.drawImage(imageBitmaps.image, 0, 0);
77 createImageBitmap(imageBitmaps.image).then(callback('ImageBitmapImage'));
80 image.src = bCanvas.toDataURL();
83 imageBitmaps.data = imageBitmap;
85 ctx.drawImage(imageBitmaps.data, 11, 0);
86 createImageBitmap(imageBitmaps.data).then(callback('ImageBitmapData'));
90 imageBitmaps.canvas = imageBitmap;
91 aCtx.clearRect(0, 0, 10, 10);
92 ctx.drawImage(imageBitmaps.canvas, 22, 0);
93 createImageBitmap(imageBitmaps.canvas).then(callback('ImageBitmapCanvas'));
97 imageBitmaps.blob = imageBitmap;
99 ctx.drawImage(imageBitmaps.blob, 33, 0);
100 createImageBitmap(imageBitmaps.blob).then(callback('ImageBitmapBlob'));
103 case 'ImageBitmapImage':
104 imageBitmaps.image = 0;
105 ctx.drawImage(imageBitmap, 0, 11);
108 case 'ImageBitmapData':
110 imageBitmaps.data = 0;
111 ctx.drawImage(imageBitmap, 11, 11);
114 case 'ImageBitmapCanvas':
115 aCtx.clearRect(0, 0, 10, 10);
116 imageBitmaps.canvas = 0;
117 ctx.drawImage(imageBitmap, 22, 11);
120 case 'ImageBitmapBlob':
121 aCtx.clearRect(0, 0, 10, 10);
122 imageBitmaps.blob = 0;
123 ctx.drawImage(imageBitmap, 33, 11);
131 function checkIfDone() {
132 if (++checkNum == 8 && window.testRunner)
133 window.testRunner.notifyDone();
137 <p>There should be 8 green squares displayed in a 2 row by 4 column grid.</p>