summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/multi_sharedWorker_frame.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/multi_sharedWorker_frame.html')
-rw-r--r--dom/workers/test/multi_sharedWorker_frame.html58
1 files changed, 58 insertions, 0 deletions
diff --git a/dom/workers/test/multi_sharedWorker_frame.html b/dom/workers/test/multi_sharedWorker_frame.html
new file mode 100644
index 0000000000..94866b918d
--- /dev/null
+++ b/dom/workers/test/multi_sharedWorker_frame.html
@@ -0,0 +1,58 @@
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Test for SharedWorker</title>
+ </head>
+ <body>
+ <script type="text/javascript">
+ "use strict";
+
+ function postMessageToParentOrOpener(message) {
+ if (parent != window) {
+ parent.postMessage(message, "*");
+ }
+ }
+
+ function debug(message) {
+ if (typeof(message) != "string") {
+ throw new Error("debug() only accepts strings!");
+ }
+ postMessageToParentOrOpener(message);
+ }
+
+ let worker;
+
+ window.addEventListener("message", function(event) {
+ if (!worker) {
+ worker = new SharedWorker("multi_sharedWorker_sharedWorker.js",
+ "FrameWorker");
+ worker.onerror = function(error) {
+ debug("Worker error: " + error.message);
+ error.preventDefault();
+
+ let data = {
+ type: "error",
+ message: error.message,
+ filename: error.filename,
+ lineno: error.lineno,
+ isErrorEvent: error instanceof ErrorEvent
+ };
+ postMessageToParentOrOpener(data);
+ };
+
+ worker.port.onmessage = function(msg) {
+ debug("Worker message: " + JSON.stringify(msg.data));
+ postMessageToParentOrOpener(msg.data);
+ };
+ }
+
+ debug("Posting message: " + JSON.stringify(event.data));
+ worker.port.postMessage(event.data);
+ });
+ </script>
+ </body>
+</html>