summaryrefslogtreecommitdiffstats
path: root/dom/url/tests/url_worker.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /dom/url/tests/url_worker.js
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
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" });
+};