Bug 1885602 - Part 2: Add a MozillaAccountMenuButton composable for the menu redesign...
[gecko.git] / dom / xhr / tests / xhr_worker.js
blob4361b347e5ee076896b915edef1ae8251a84d97a
1 /**
2  * Any copyright is dedicated to the Public Domain.
3  * http://creativecommons.org/publicdomain/zero/1.0/
4  */
5 var xhr = new XMLHttpRequest();
7 function onload(event) {
8   if (event.target != xhr) {
9     throw new Error("onload event.target != xhr");
10   }
12   if (event.target.status != 200) {
13     const message = { type: "error", error: event.target.status };
14     postMessage(message);
15   }
17   const message = { type: "load", data: xhr.responseText };
18   postMessage(message);
21 xhr.onload = onload;
22 xhr.addEventListener("load", onload);
23 xhr.removeEventListener("load", onload);
24 if (!xhr.onload) {
25   const message = { type: "error", error: "Lost message listener!" };
26   postMessage(message);
29 xhr.onerror = function (event) {
30   if (event.target != xhr) {
31     throw new Error("onerror event.target != xhr");
32   }
33   var message = { type: "error", error: event.target.status };
34   postMessage(message);
36 // eslint-disable-next-line no-self-assign
37 xhr.onerror = xhr.onerror;
38 // eslint-disable-next-line no-self-compare
39 if (!xhr.onerror || xhr.onerror != xhr.onerror) {
40   throw new Error("onerror wasn't set properly");
43 function onprogress(event) {
44   if (event.target != xhr) {
45     throw new Error("onprogress event.target != xhr");
46   }
47   const message = {
48     type: "progress",
49     current: event.loaded,
50     total: event.total,
51   };
52   postMessage(message);
54 xhr.addEventListener("progress", onprogress);
56 xhr.addEventListener("foopety", function () {});
57 xhr.removeEventListener("doopety", function () {});
59 xhr.onloadend = function () {
60   const message = { type: "loadend" };
61   postMessage(message);
64 var upload = xhr.upload;
65 upload.onprogress = function () {};
66 upload.addEventListener("foo", function () {});
67 upload.removeEventListener("foo", function () {});
68 upload.addEventListener("load", function () {});
69 upload.removeEventListener("foo", function () {});
70 upload.onload = function () {
71   const message = { type: "upload.load" };
72   postMessage(message);
75 onmessage = function (event) {
76   if (xhr.DONE != 4 || XMLHttpRequest.DONE != 4) {
77     throw new Error("xhr constants not correct!");
78   }
79   if (xhr.readystate > xhr.UNSENT) {
80     throw new Error("XHR already running!");
81   }
82   xhr.open("POST", event.data);
83   xhr.send("Data to send");