summaryrefslogtreecommitdiffstats
path: root/dom/xhr/tests/test_bug1752863_worker.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /dom/xhr/tests/test_bug1752863_worker.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
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");
+};