simpleFileOpener.js (948B)
1 /* eslint-env mozilla/chrome-script */ 2 3 // eslint-disable-next-line mozilla/reject-importGlobalProperties 4 Cu.importGlobalProperties(["File"]); 5 6 var file; 7 8 addMessageListener("file.open", function (stem) { 9 try { 10 if (!file) { 11 file = Cc["@mozilla.org/file/directory_service;1"] 12 .getService(Ci.nsIProperties) 13 .get("TmpD", Ci.nsIFile); 14 file.append(stem); 15 file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600); 16 } 17 18 File.createFromNsIFile(file).then(function (domFile) { 19 sendAsyncMessage("file.opened", { 20 fullPath: file.path, 21 leafName: file.leafName, 22 domFile, 23 }); 24 }); 25 } catch (e) { 26 sendAsyncMessage("fail", e.toString()); 27 } 28 }); 29 30 addMessageListener("file.remove", function () { 31 try { 32 file.remove(/* recursive: */ false); 33 file = undefined; 34 sendAsyncMessage("file.removed", null); 35 } catch (e) { 36 sendAsyncMessage("fail", e.toString()); 37 } 38 });