tor-browser

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

head.js (2356B)


      1 /**
      2 * Any copyright is dedicated to the Public Domain.
      3 * http://creativecommons.org/publicdomain/zero/1.0/
      4 */
      5 
      6 async function require_module(id) {
      7  if (!require_module.moduleLoader) {
      8    const { ModuleLoader } = ChromeUtils.importESModule(
      9      "resource://testing-common/dom/quota/test/modules/ModuleLoader.sys.mjs"
     10    );
     11 
     12    const base = Services.io.newFileURI(do_get_file("")).spec;
     13 
     14    const depth = "../../../../";
     15 
     16    Cu.importGlobalProperties(["storage"]);
     17 
     18    const { Utils } = ChromeUtils.importESModule(
     19      "resource://testing-common/dom/quota/test/modules/Utils.sys.mjs"
     20    );
     21 
     22    const proto = {
     23      Assert,
     24      Cr,
     25      DOMException,
     26      navigator: {
     27        storage,
     28      },
     29      TextEncoder,
     30      Utils,
     31    };
     32 
     33    require_module.moduleLoader = new ModuleLoader(base, depth, proto);
     34  }
     35 
     36  return require_module.moduleLoader.require(id);
     37 }
     38 
     39 async function run_test_in_worker(script) {
     40  const { runTestInWorker } = ChromeUtils.importESModule(
     41    "resource://testing-common/dom/quota/test/modules/WorkerDriver.sys.mjs"
     42  );
     43 
     44  const base = "resource://testing-common/dom/fs/test/xpcshell/";
     45 
     46  const listener = {
     47    onOk(value, message) {
     48      ok(value, message);
     49    },
     50    onIs(a, b, message) {
     51      Assert.equal(a, b, message);
     52    },
     53    onInfo(message) {
     54      info(message);
     55    },
     56  };
     57 
     58  await runTestInWorker(script, base, listener);
     59 }
     60 
     61 add_setup(async function () {
     62  const {
     63    setStoragePrefs,
     64    clearStoragePrefs,
     65    clearStoragesForOrigin,
     66    resetStorage,
     67  } = ChromeUtils.importESModule(
     68    "resource://testing-common/dom/quota/test/modules/StorageUtils.sys.mjs"
     69  );
     70 
     71  const optionalPrefsToSet = [
     72    ["dom.fs.enabled", true],
     73    ["dom.fs.writable_file_stream.enabled", true],
     74    ["dom.fs.testing", true],
     75  ];
     76 
     77  setStoragePrefs(optionalPrefsToSet);
     78 
     79  registerCleanupFunction(async function () {
     80    const principal = Cc["@mozilla.org/systemprincipal;1"].createInstance(
     81      Ci.nsIPrincipal
     82    );
     83 
     84    await clearStoragesForOrigin(principal);
     85 
     86    Services.prefs.clearUserPref(
     87      "dom.quotaManager.temporaryStorage.fixedLimit"
     88    );
     89 
     90    await resetStorage();
     91 
     92    const optionalPrefsToClear = [
     93      "dom.fs.enabled",
     94      "dom.fs.writable_file_stream.enabled",
     95      "dom.fs.testing",
     96    ];
     97 
     98    clearStoragePrefs(optionalPrefsToClear);
     99  });
    100 
    101  do_get_profile();
    102 });