tor-browser

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

cookiesHelper.js (1698B)


      1 const ALLOWED = 0;
      2 const BLOCKED = 1;
      3 
      4 async function cleanupData() {
      5  await new Promise(resolve => {
      6    const chromeScript = SpecialPowers.loadChromeScript(_ => {
      7      /* eslint-env mozilla/chrome-script */
      8      addMessageListener("go", __ => {
      9        Services.clearData.deleteData(
     10          Services.clearData.CLEAR_COOKIES |
     11            Services.clearData.CLEAR_ALL_CACHES |
     12            Services.clearData.CLEAR_DOM_STORAGES,
     13          ___ => {
     14            sendAsyncMessage("done");
     15          }
     16        );
     17      });
     18    });
     19 
     20    chromeScript.addMessageListener("done", _ => {
     21      chromeScript.destroy();
     22      resolve();
     23    });
     24 
     25    chromeScript.sendAsyncMessage("go");
     26  });
     27 }
     28 
     29 async function checkLastRequest(type, state) {
     30  let json = await fetch("cookie.sjs?last&" + Math.random()).then(r =>
     31    r.json()
     32  );
     33  is(json.type, type, "Type: " + type);
     34  is(json.hasCookie, state == ALLOWED, "Fetch has cookies");
     35 }
     36 
     37 async function runTests(currentTest) {
     38  await cleanupData();
     39  await SpecialPowers.pushPrefEnv({
     40    set: [["network.cookie.cookieBehavior", 2]],
     41  });
     42  let windowBlocked = window.open("cookie.sjs?window&" + Math.random());
     43  await new Promise(resolve => {
     44    windowBlocked.onload = resolve;
     45  });
     46  await currentTest(windowBlocked, BLOCKED);
     47  windowBlocked.close();
     48 
     49  await cleanupData();
     50  await SpecialPowers.pushPrefEnv({
     51    set: [["network.cookie.cookieBehavior", 1]],
     52  });
     53  let windowAllowed = window.open("cookie.sjs?window&" + Math.random());
     54  await new Promise(resolve => {
     55    windowAllowed.onload = resolve;
     56  });
     57  await currentTest(windowAllowed, ALLOWED);
     58  windowAllowed.close();
     59 
     60  SimpleTest.finish();
     61 }
     62 
     63 SimpleTest.waitForExplicitFinish();