summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/storageevent/interOriginFrame.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/tests/mochitest/storageevent/interOriginFrame.js
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.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/tests/mochitest/storageevent/interOriginFrame.js')
-rw-r--r--dom/tests/mochitest/storageevent/interOriginFrame.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/tests/mochitest/storageevent/interOriginFrame.js b/dom/tests/mochitest/storageevent/interOriginFrame.js
new file mode 100644
index 0000000000..f4b3d6c9ab
--- /dev/null
+++ b/dom/tests/mochitest/storageevent/interOriginFrame.js
@@ -0,0 +1,63 @@
+let parentLocation = "";
+
+// The first time this gets called in a page, the location of the parent
+// should be passed in. This will be used as the target origin argument
+// for the postMessage call for all subsequent calls to postMsg().
+function postMsg(message, newParentLocation) {
+ if (newParentLocation) {
+ parentLocation = newParentLocation;
+ } else if (parentLocation == "") {
+ throw new Error("Failed to pass in newParentLocation");
+ }
+
+ parent.postMessage(message, parentLocation);
+}
+
+window.addEventListener("message", onMessageReceived);
+
+function onMessageReceived(event) {
+ if (event.data == "step") {
+ var performed = false;
+ try {
+ performed = doStep();
+ } catch (ex) {
+ postMsg("FAILURE: exception threw at " + location + ":\n" + ex);
+ finishTest();
+ }
+
+ if (performed) {
+ postMsg("perf");
+ }
+
+ return;
+ }
+
+ if (parent) {
+ postMsg(event.data);
+ }
+}
+
+function ok(a, message) {
+ if (!a) {
+ postMsg("FAILURE: " + message);
+ } else {
+ postMsg(message);
+ }
+}
+
+function is(a, b, message) {
+ if (a != b) {
+ postMsg("FAILURE: " + message + ", expected " + b + " got " + a);
+ } else {
+ postMsg(message + ", expected " + b + " got " + a);
+ }
+}
+
+function todo(a, b, message) {
+ postMsg("TODO: " + message + ", expected " + b + " got " + a);
+}
+
+function finishTest() {
+ postMsg("done");
+ return false;
+}