script_bug1238440.js (979B)
1 /* eslint-env mozilla/chrome-script */ 2 3 // eslint-disable-next-line mozilla/reject-importGlobalProperties 4 Cu.importGlobalProperties(["File"]); 5 6 var tmpFile; 7 8 function writeFile(text, answer) { 9 var stream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance( 10 Ci.nsIFileOutputStream 11 ); 12 stream.init(tmpFile, 0x02 | 0x08 | 0x10, 0o600, 0); 13 stream.write(text, text.length); 14 stream.close(); 15 16 File.createFromNsIFile(tmpFile).then(function (file) { 17 sendAsyncMessage(answer, { file }); 18 }); 19 } 20 21 addMessageListener("file.open", function (e) { 22 tmpFile = Cc["@mozilla.org/file/directory_service;1"] 23 .getService(Ci.nsIDirectoryService) 24 .QueryInterface(Ci.nsIProperties) 25 .get("TmpD", Ci.nsIFile); 26 tmpFile.append("foo.txt"); 27 tmpFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600); 28 29 writeFile("hello world", "file.opened"); 30 }); 31 32 addMessageListener("file.change", function (e) { 33 writeFile("hello world---------------", "file.changed"); 34 });