tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_navigator_iframe.js (1193B)


      1 var worker = new Worker("navigator_worker.js");
      2 
      3 var is = window.parent.is;
      4 var ok = window.parent.ok;
      5 var SimpleTest = window.parent.SimpleTest;
      6 
      7 worker.onmessage = function (event) {
      8  var args = JSON.parse(event.data);
      9 
     10  if (args.name == "testFinished") {
     11    SimpleTest.finish();
     12    return;
     13  }
     14 
     15  if (typeof navigator[args.name] == "undefined") {
     16    ok(false, "Navigator has no '" + args.name + "' property!");
     17    return;
     18  }
     19 
     20  if (args.name === "languages") {
     21    is(
     22      navigator.languages.toString(),
     23      args.value.toString(),
     24      "languages matches"
     25    );
     26    return;
     27  }
     28 
     29  const objectProperties = [
     30    "connection",
     31    "gpu",
     32    "locks",
     33    "mediaCapabilities",
     34    "permissions",
     35    "serviceWorker",
     36    "storage",
     37  ];
     38 
     39  if (objectProperties.includes(args.name)) {
     40    is(
     41      typeof navigator[args.name],
     42      typeof args.value,
     43      `${args.name} type matches`
     44    );
     45    return;
     46  }
     47 
     48  is(
     49    navigator[args.name],
     50    args.value,
     51    "Mismatched navigator string for " + args.name + "!"
     52  );
     53 };
     54 
     55 worker.onerror = function (event) {
     56  ok(false, "Worker had an error: " + event.message);
     57  SimpleTest.finish();
     58 };
     59 
     60 worker.postMessage(getHelperData());