head.js (1273B)
1 ChromeUtils.defineESModuleGetters(this, { 2 SessionStartup: "resource:///modules/sessionstore/SessionStartup.sys.mjs", 3 SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs", 4 }); 5 6 // Call a function once initialization of SessionStartup is complete 7 function afterSessionStartupInitialization(cb) { 8 info("Waiting for session startup initialization"); 9 let observer = function () { 10 try { 11 info("Session startup initialization observed"); 12 Services.obs.removeObserver(observer, "sessionstore-state-finalized"); 13 cb(); 14 } catch (ex) { 15 do_throw(ex); 16 } 17 }; 18 Services.obs.addObserver(observer, "sessionstore-state-finalized"); 19 20 // We need the Crash Monitor initialized for sessionstartup to run 21 // successfully. 22 const { CrashMonitor } = ChromeUtils.importESModule( 23 "resource://gre/modules/CrashMonitor.sys.mjs" 24 ); 25 CrashMonitor.init(); 26 27 // Start sessionstartup initialization. 28 SessionStartup.init(); 29 } 30 31 // Compress the source file using lz4 and put the result to destination file. 32 // After that, source file is deleted. 33 async function writeCompressedFile(source, destination) { 34 let s = await IOUtils.read(source); 35 await IOUtils.write(destination, s, { compress: true }); 36 await IOUtils.remove(source); 37 }