summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/test_navigator_iframe.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/test_navigator_iframe.js')
-rw-r--r--dom/workers/test/test_navigator_iframe.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/dom/workers/test/test_navigator_iframe.js b/dom/workers/test/test_navigator_iframe.js
new file mode 100644
index 0000000000..fd6269cebe
--- /dev/null
+++ b/dom/workers/test/test_navigator_iframe.js
@@ -0,0 +1,64 @@
+var worker = new Worker("navigator_worker.js");
+
+var is = window.parent.is;
+var ok = window.parent.ok;
+var SimpleTest = window.parent.SimpleTest;
+
+worker.onmessage = function (event) {
+ var args = JSON.parse(event.data);
+
+ if (args.name == "testFinished") {
+ SimpleTest.finish();
+ return;
+ }
+
+ if (typeof navigator[args.name] == "undefined") {
+ ok(false, "Navigator has no '" + args.name + "' property!");
+ return;
+ }
+
+ if (args.name === "languages") {
+ is(
+ navigator.languages.toString(),
+ args.value.toString(),
+ "languages matches"
+ );
+ return;
+ }
+
+ const objectProperties = [
+ "connection",
+ "gpu",
+ "locks",
+ "mediaCapabilities",
+ "storage",
+ ];
+
+ if (objectProperties.includes(args.name)) {
+ is(
+ typeof navigator[args.name],
+ typeof args.value,
+ `${args.name} type matches`
+ );
+ return;
+ }
+
+ is(
+ navigator[args.name],
+ args.value,
+ "Mismatched navigator string for " + args.name + "!"
+ );
+};
+
+worker.onerror = function (event) {
+ ok(false, "Worker had an error: " + event.message);
+ SimpleTest.finish();
+};
+
+var { AppConstants } = SpecialPowers.ChromeUtils.importESModule(
+ "resource://gre/modules/AppConstants.sys.mjs"
+);
+var isNightly = AppConstants.NIGHTLY_BUILD;
+var isRelease = AppConstants.RELEASE_OR_BETA;
+
+worker.postMessage({ isNightly, isRelease });