tor-browser

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

script_createFile.js (1332B)


      1 /* eslint-env mozilla/chrome-script */
      2 
      3 // eslint-disable-next-line mozilla/reject-importGlobalProperties
      4 Cu.importGlobalProperties(["File"]);
      5 
      6 addMessageListener("file.open", function (e) {
      7  var tmpFile = Cc["@mozilla.org/file/directory_service;1"]
      8    .getService(Ci.nsIDirectoryService)
      9    .QueryInterface(Ci.nsIProperties)
     10    .get("TmpD", Ci.nsIFile);
     11  tmpFile.append("file.txt");
     12  tmpFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600);
     13 
     14  File.createFromNsIFile(tmpFile).then(function (file) {
     15    sendAsyncMessage("file.opened", { data: file });
     16  });
     17 });
     18 
     19 addMessageListener("nonEmptyFile.open", function (e) {
     20  var tmpFile = Cc["@mozilla.org/file/directory_service;1"]
     21    .getService(Ci.nsIDirectoryService)
     22    .QueryInterface(Ci.nsIProperties)
     23    .get("TmpD", Ci.nsIFile);
     24  tmpFile.append("file.txt");
     25  tmpFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600);
     26 
     27  var outStream = Cc[
     28    "@mozilla.org/network/file-output-stream;1"
     29  ].createInstance(Ci.nsIFileOutputStream);
     30  outStream.init(
     31    tmpFile,
     32    0x02 | 0x08 | 0x20, // write, create, truncate
     33    0o666,
     34    0
     35  );
     36  var fileData = "Hello world!";
     37  outStream.write(fileData, fileData.length);
     38  outStream.close();
     39 
     40  File.createFromNsIFile(tmpFile).then(function (file) {
     41    sendAsyncMessage("nonEmptyFile.opened", { data: file });
     42  });
     43 });