summaryrefslogtreecommitdiffstats
path: root/dom/workers/test/test_navigator_workers_hardwareConcurrency.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/test/test_navigator_workers_hardwareConcurrency.html')
-rw-r--r--dom/workers/test/test_navigator_workers_hardwareConcurrency.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/dom/workers/test/test_navigator_workers_hardwareConcurrency.html b/dom/workers/test/test_navigator_workers_hardwareConcurrency.html
new file mode 100644
index 0000000000..e80c211ce7
--- /dev/null
+++ b/dom/workers/test/test_navigator_workers_hardwareConcurrency.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Test for Navigator.hardwareConcurrency</title>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ <script type="application/javascript">
+ "use strict";
+
+ SimpleTest.waitForExplicitFinish();
+
+ function getWorkerHardwareConcurrency(onmessage) {
+ var script = "postMessage(navigator.hardwareConcurrency)";
+ var url = URL.createObjectURL(new Blob([script]));
+ var w = new Worker(url);
+ w.onmessage = onmessage;
+ }
+
+ function resistFingerprinting(value) {
+ return SpecialPowers.pushPrefEnv({"set": [["privacy.resistFingerprinting", value]]});
+ }
+
+ getWorkerHardwareConcurrency(e => {
+ var x = e.data;
+ is(typeof x, "number", "hardwareConcurrency should be a number.");
+ ok(x > 0, "hardwareConcurrency should be greater than 0.");
+
+ resistFingerprinting(true).then(() => {
+ getWorkerHardwareConcurrency(msg => {
+ const y = msg.data;
+ ok(y === 2, "hardwareConcurrency should always be 2 when we're resisting fingerprinting.");
+
+ resistFingerprinting(false).then(() => {
+ getWorkerHardwareConcurrency(msg1 => {
+ const z = msg1.data;
+ ok(z === x, "hardwareConcurrency should be the same as before we were resisting fingerprinting.");
+
+ SimpleTest.finish();
+ });
+ });
+ });
+ });
+ });
+
+ </script>
+</head>
+<body>
+<p id="display"></p>
+<div id="content" style="display: none">
+
+</div>
+<pre id="test">
+</pre>
+</body>
+</html>