tor-browser

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

test_gpc.html (1942B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test for Global Privacy Control headers</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7 </head>
      8 <body>
      9 <script class="testbody" type="application/javascript">
     10 
     11 add_task(async function testGlobalPrivacyControlDisabled() {
     12  await SpecialPowers.pushPrefEnv({ set: [
     13    ["privacy.globalprivacycontrol.enabled", false],
     14    ["privacy.globalprivacycontrol.functionality.enabled", true],
     15  ]})
     16  .then(() => fetch("file_gpc_server.sjs"))
     17  .then((response) => response.text())
     18  .then((response) => {
     19    is(response, "false", "GPC disabled so header unsent");
     20    is(navigator.globalPrivacyControl, false, "GPC disabled so navigator property is 0");
     21 
     22    let worker = new Worker(window.URL.createObjectURL(new Blob(["postMessage(navigator.globalPrivacyControl);"])));
     23    return new Promise((resolve) => { worker.onmessage = (e) => { resolve(e.data) } });
     24  })
     25  .then((response) => {
     26    is(response, false, "GPC disabled so worker's navigator property is 0");
     27  });
     28 });
     29 
     30 add_task(async function testGlobalPrivacyControlEnabled() {
     31  await SpecialPowers.pushPrefEnv({ set: [
     32    ["privacy.globalprivacycontrol.enabled", true],
     33    ["privacy.globalprivacycontrol.functionality.enabled", true],
     34  ]})
     35  .then(() => fetch("file_gpc_server.sjs"))
     36  .then((response) => response.text())
     37  .then((response) => {
     38    is(response, "true", "GPC enabled so header sent and received");
     39    is(navigator.globalPrivacyControl, true, "GPC enabled so navigator property is 1");
     40 
     41    let worker = new Worker(window.URL.createObjectURL(new Blob(["postMessage(navigator.globalPrivacyControl);"])));
     42    return new Promise((resolve) => { worker.onmessage = (e) => { resolve(e.data) } });
     43  })
     44  .then((response) => {
     45    is(response, true, "GPC enabled so worker's navigator property is 1");
     46  });
     47 });
     48 
     49 </script>
     50 </body>
     51 </html>