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 });