imagebitmap_on_worker.js (4304B)
1 importScripts("imagebitmap_bug1239300.js"); 2 3 function ok(expect, msg) { 4 postMessage({ type: "status", status: !!expect, msg }); 5 } 6 7 function doneTask() { 8 postMessage({ type: "doneTask" }); 9 } 10 11 function promiseThrows(p, name) { 12 var didThrow; 13 return p 14 .then( 15 function () { 16 didThrow = false; 17 }, 18 function () { 19 didThrow = true; 20 } 21 ) 22 .then(function () { 23 ok(didThrow, "[TestException] " + name); 24 }); 25 } 26 27 onmessage = function (event) { 28 if (event.data.type == "testImageData") { 29 var width = event.data.width; 30 var height = event.data.height; 31 var imageData = event.data.source; 32 ok(imageData, "[CreateFromImageData] An ImageData is passed into worker."); 33 ok( 34 imageData.width == width, 35 "[CreateFromImageData] Passed ImageData has right width = " + width 36 ); 37 ok( 38 imageData.height == height, 39 "[CreateFromImageData] Passed ImageData has right height = " + height 40 ); 41 42 var promise = createImageBitmap(imageData); 43 promise.then(function (bitmap) { 44 ok(bitmap, "[CreateFromImageData] ImageBitmap is created successfully."); 45 ok( 46 bitmap.width == width, 47 "[CreateFromImageData] ImageBitmap.width = " + 48 bitmap.width + 49 ", expected witdth = " + 50 width 51 ); 52 ok( 53 bitmap.height == height, 54 "[CreateFromImageData] ImageBitmap.height = " + 55 bitmap.height + 56 ", expected height = " + 57 height 58 ); 59 60 doneTask(); 61 }); 62 } else if (event.data.type == "testBlob") { 63 var width = event.data.width; 64 var height = event.data.height; 65 var blob = event.data.source; 66 ok(blob, "[CreateFromBlob] A Blob object is passed into worker."); 67 68 var promise = createImageBitmap(blob); 69 promise.then(function (bitmap) { 70 ok(bitmap, "[CreateFromBlob] ImageBitmap is created successfully."); 71 ok( 72 bitmap.width == width, 73 "[CreateFromBlob] ImageBitmap.width = " + 74 bitmap.width + 75 ", expected witdth = " + 76 width 77 ); 78 ok( 79 bitmap.height == height, 80 "[CreateFromBlob] ImageBitmap.height = " + 81 bitmap.height + 82 ", expected height = " + 83 height 84 ); 85 86 doneTask(); 87 }); 88 } else if (event.data.type == "testImageBitmap") { 89 var width = event.data.width; 90 var height = event.data.height; 91 var source = event.data.source; 92 ok( 93 source, 94 "[CreateFromImageBitmap] A soruce object is passed into worker." 95 ); 96 97 var promise = createImageBitmap(source); 98 promise.then(function (bitmap) { 99 ok( 100 bitmap, 101 "[CreateFromImageBitmap] ImageBitmap is created successfully." 102 ); 103 ok( 104 bitmap.width == width, 105 "[CreateFromImageBitmap] ImageBitmap.width = " + 106 bitmap.width + 107 ", expected witdth = " + 108 width 109 ); 110 ok( 111 bitmap.height == height, 112 "[CreateFromImageBitmap] ImageBitmap.height = " + 113 bitmap.height + 114 ", expected height = " + 115 height 116 ); 117 118 var promise2 = createImageBitmap(bitmap); 119 promise2.then(function (bitmap2) { 120 ok( 121 bitmap2, 122 "[CreateFromImageBitmap] 2nd ImageBitmap is created successfully." 123 ); 124 ok( 125 bitmap.width == width, 126 "[CreateFromImageBitmap] ImageBitmap.width = " + 127 bitmap.width + 128 ", expected witdth = " + 129 width 130 ); 131 ok( 132 bitmap.height == height, 133 "[CreateFromImageBitmap] ImageBitmap.height = " + 134 bitmap.height + 135 ", expected height = " + 136 height 137 ); 138 139 doneTask(); 140 }); 141 }); 142 } else if (event.data.type == "testException") { 143 var source = event.data.source; 144 if (event.data.sx) { 145 var sx = event.data.sx; 146 var sy = event.data.sy; 147 var sw = event.data.sw; 148 var sh = event.data.sh; 149 promiseThrows(createImageBitmap(source, sx, sy, sw, sh), event.data.msg); 150 } else { 151 promiseThrows(createImageBitmap(source), event.data.msg); 152 } 153 doneTask(); 154 } else if (event.data.type == "testBug1239300") { 155 var promise = testBug1239300(); 156 promise.then(doneTask, doneTask); 157 } 158 };