summaryrefslogtreecommitdiffstats
path: root/dom/url/tests/url_worker.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /dom/url/tests/url_worker.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/url/tests/url_worker.js')
-rw-r--r--dom/url/tests/url_worker.js98
1 files changed, 98 insertions, 0 deletions
diff --git a/dom/url/tests/url_worker.js b/dom/url/tests/url_worker.js
new file mode 100644
index 0000000000..8a69744603
--- /dev/null
+++ b/dom/url/tests/url_worker.js
@@ -0,0 +1,98 @@
+/* eslint-env worker */
+
+onmessage = function (event) {
+ if (event.data != 0) {
+ var worker = new Worker("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;
+ let 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 });
+ postMessage({ type: "url", url });
+
+ status = false;
+ try {
+ URL.createObjectURL({});
+ } catch (e) {
+ status = true;
+ }
+
+ postMessage({ type: "status", status, msg: "Exception wanted" });
+
+ blob = new Blob([123]);
+ var uri = URL.createObjectURL(blob);
+ postMessage({
+ type: "status",
+ status: !!uri,
+ msg: "The URI has been generated from the blob",
+ });
+
+ var u = new URL(uri);
+ postMessage({
+ type: "status",
+ status: u.origin == location.origin,
+ msg: "The URL generated from a blob URI has an origin.",
+ });
+
+ postMessage({ type: "finish" });
+};