michael@0: onmessage = function(event) { michael@0: if (event.data != 0) { michael@0: var worker = new Worker('jsm_url_worker.js'); michael@0: worker.onmessage = function(event) { michael@0: postMessage(event.data); michael@0: } michael@0: michael@0: worker.postMessage(event.data - 1); michael@0: return; michael@0: } michael@0: michael@0: status = false; michael@0: try { michael@0: if ((URL instanceof Object)) { michael@0: status = true; michael@0: } michael@0: } catch(e) { michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'URL object:' + URL}); michael@0: michael@0: status = false; michael@0: var blob = null; michael@0: try { michael@0: blob = new Blob([]); michael@0: status = true; michael@0: } catch(e) { michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'Blob:' + blob}); michael@0: michael@0: status = false; michael@0: var url = null; michael@0: try { michael@0: url = URL.createObjectURL(blob); michael@0: status = true; michael@0: } catch(e) { michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'Blob URL:' + url}); michael@0: michael@0: status = false; michael@0: try { michael@0: URL.revokeObjectURL(url); michael@0: status = true; michael@0: } catch(e) { michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'Blob Revoke URL'}); michael@0: michael@0: status = false; michael@0: var url = null; michael@0: try { michael@0: url = URL.createObjectURL(true); michael@0: } catch(e) { michael@0: status = true; michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'CreateObjectURL should fail if the arg is not a blob'}); michael@0: michael@0: status = false; michael@0: var url = null; michael@0: try { michael@0: url = URL.createObjectURL(blob); michael@0: status = true; michael@0: } catch(e) { michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'Blob URL2:' + url}); michael@0: postMessage({type: 'url', url: url}); michael@0: michael@0: status = false; michael@0: try { michael@0: URL.createObjectURL(new Object()); michael@0: } catch(e) { michael@0: status = true; michael@0: } michael@0: michael@0: postMessage({type: 'status', status: status, msg: 'Exception wanted' }); michael@0: michael@0: postMessage({type: 'finish' }); michael@0: }