summaryrefslogtreecommitdiffstats
path: root/dom/url/tests/jsm_url_worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/url/tests/jsm_url_worker.js')
-rw-r--r--dom/url/tests/jsm_url_worker.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/dom/url/tests/jsm_url_worker.js b/dom/url/tests/jsm_url_worker.js
new file mode 100644
index 0000000000..d4cabe4113
--- /dev/null
+++ b/dom/url/tests/jsm_url_worker.js
@@ -0,0 +1,84 @@
+/* eslint-env worker */
+
+onmessage = function (event) {
+ if (event.data != 0) {
+ var worker = new Worker("jsm_url_worker.js");
+ worker.onmessage = function (ev) {
+ postMessage(ev.data);
+ };
+
+ worker.postMessage(event.data - 1);
+ return;
+ }
+
+ let status = false;
+ try {
+ if (URL instanceof Object) {
+ status = true;
+ }
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "URL object:" + URL });
+
+ status = false;
+ var blob = null;
+ try {
+ blob = new Blob([]);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob:" + blob });
+
+ status = false;
+ var url = null;
+ try {
+ url = URL.createObjectURL(blob);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob URL:" + url });
+
+ status = false;
+ try {
+ URL.revokeObjectURL(url);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob Revoke URL" });
+
+ status = false;
+ url = null;
+ try {
+ url = URL.createObjectURL(true);
+ } catch (e) {
+ status = true;
+ }
+
+ postMessage({
+ type: "status",
+ status,
+ msg: "CreateObjectURL should fail if the arg is not a blob",
+ });
+
+ status = false;
+ url = null;
+ try {
+ url = URL.createObjectURL(blob);
+ status = true;
+ } catch (e) {}
+
+ postMessage({ type: "status", status, msg: "Blob URL2:" + url });
+
+ status = false;
+ try {
+ URL.createObjectURL({});
+ } catch (e) {
+ status = true;
+ }
+
+ postMessage({ type: "status", status, msg: "Exception wanted" });
+
+ postMessage({ type: "url", url });
+
+ postMessage({ type: "finish" });
+};