Exponer el archivo escrito a una página web con una extensión de Firefox

Tengo una aplicación web que mi cliente usa para el registro de caja. Lo que debo hacer es crear un archivo local, ya que el software de la caja registradora debe leer ese archivo para poder imprimir.

Hasta ahora estaba usando este código:

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(filePath);

Desafortunadamente, con la última versión de Firefox, esto ya no funciona, así que me dijeron que necesitaba un complemento para crear el archivo. He intentado desarrollar un complemento (no sé si con éxito) y tengo main.js se ve así:

var FileManager =
{
Write:
    function (File, Text)
    {
        if (!File) return;
        const unicodeConverter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
            .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);

        unicodeConverter.charset = "UTF-8";

        Text = unicodeConverter.ConvertFromUnicode(Text);
        const os = Components.classes["@mozilla.org/network/file-output-stream;1"]
          .createInstance(Components.interfaces.nsIFileOutputStream);
        os.init(File, 0x02 | 0x08 | 0x20, 0700, 0);
        os.write(Text, Text.length);
        os.close();
    },

Read:
    function (File)
    {
        if (!File) return;
        var res;

        const is = Components.classes["@mozilla.org/network/file-input-stream;1"]
            .createInstance(Components.interfaces.nsIFileInputStream);
        const sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
            .createInstance(Components.interfaces.nsIScriptableInputStream);
        is.init(File, 0x01, 0400, null);
        sis.init(is);

        res = sis.read(sis.available());

        is.close();

        return res;
    },
}; 

¿Alguna idea de cómo debo usar main.js? ¿Dónde la encuentro después de instalar el complemento? Necesito usar algo como esto: FileManager.Write (ruta, texto).

Respuestas a la pregunta(1)

Su respuesta a la pregunta