Backed out changeset 06f41c22f3a6 (bug 1888460) for causing linux xpcshell failures...
[gecko.git] / dom / workers / test / test_navigator_workers_hardwareConcurrency.html
blobe80c211ce7727401be448b3512a67a5fb49dd693
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>Test for Navigator.hardwareConcurrency</title>
6 <script src="/tests/SimpleTest/SimpleTest.js"></script>
7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
8 <script type="application/javascript">
9 "use strict";
11 SimpleTest.waitForExplicitFinish();
13 function getWorkerHardwareConcurrency(onmessage) {
14 var script = "postMessage(navigator.hardwareConcurrency)";
15 var url = URL.createObjectURL(new Blob([script]));
16 var w = new Worker(url);
17 w.onmessage = onmessage;
20 function resistFingerprinting(value) {
21 return SpecialPowers.pushPrefEnv({"set": [["privacy.resistFingerprinting", value]]});
24 getWorkerHardwareConcurrency(e => {
25 var x = e.data;
26 is(typeof x, "number", "hardwareConcurrency should be a number.");
27 ok(x > 0, "hardwareConcurrency should be greater than 0.");
29 resistFingerprinting(true).then(() => {
30 getWorkerHardwareConcurrency(msg => {
31 const y = msg.data;
32 ok(y === 2, "hardwareConcurrency should always be 2 when we're resisting fingerprinting.");
34 resistFingerprinting(false).then(() => {
35 getWorkerHardwareConcurrency(msg1 => {
36 const z = msg1.data;
37 ok(z === x, "hardwareConcurrency should be the same as before we were resisting fingerprinting.");
39 SimpleTest.finish();
40 });
41 });
42 });
43 });
44 });
46 </script>
47 </head>
48 <body>
49 <p id="display"></p>
50 <div id="content" style="display: none">
52 </div>
53 <pre id="test">
54 </pre>
55 </body>
56 </html>