summaryrefslogtreecommitdiffstats
path: root/dom/xhr/tests/test_bug1752863_worker.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:44:51 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:44:51 +0000
commit9e3c08db40b8916968b9f30096c7be3f00ce9647 (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /dom/xhr/tests/test_bug1752863_worker.js
parentInitial commit. (diff)
downloadthunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.tar.xz
thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.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/xhr/tests/test_bug1752863_worker.js')
-rw-r--r--dom/xhr/tests/test_bug1752863_worker.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/dom/xhr/tests/test_bug1752863_worker.js b/dom/xhr/tests/test_bug1752863_worker.js
new file mode 100644
index 0000000000..196b825c0c
--- /dev/null
+++ b/dom/xhr/tests/test_bug1752863_worker.js
@@ -0,0 +1,34 @@
+var xhr;
+var myself;
+
+async function handleLoadstart() {
+ try {
+ xhr.open("POST", "FOOBAR", false);
+ // This will potentially queue another "loadstart" event
+ // before we can catch (err). But the order should be
+ // guaranteed, that is the first postMessage arriving at
+ // our parent is from the first catch (err).
+ xhr.send();
+ myself.postMessage("MissingError");
+ } catch (err) {
+ if (err instanceof DOMException) {
+ // This is what we expect to happen on the first error
+ // and the parent will check for this to arrive.
+ myself.postMessage("DOMException");
+ } else {
+ myself.postMessage("OtherError");
+ }
+ // Let's ensure we still bail out from the processing.
+ xhr.removeEventListener("loadstart", handleLoadstart, true);
+ throw err;
+ }
+}
+
+self.onmessage = async function (ev) {
+ xhr = new XMLHttpRequest({ mozAnon: false });
+ myself = self;
+ xhr.addEventListener("loadstart", handleLoadstart, true);
+ xhr.open("POST", "FOOBAR", false);
+ xhr.send();
+ postMessage("TERMINATE");
+};