Seleccione un archivo dentro del directorio de complementos de Firefox

Estoy convirtiendo un complemento de Firefox basado en XUL a una versión basada en SDK por simplicidad. Los módulos XPCOM que uso en la versión basada en XUL parecen funcionar, pero ci.nsIFile se comporta de manera diferente.

No puedo entender cómo navegar a smartProxy.py, que actualmente se encuentra en el nivel más alto del directorio.

En la versión XUL, smartProxy.py se encuentra en chrome / bin / smartproxy.py. Utilizo los siguientes comandos para ejecutar el programa y funciona sin errores.

getExeFile: function() {
    var file = cc["@mozilla.org/file/directory_service;1"].getService(ci.nsIProperties).get("ProfD", ci.nsIFile);
    file.append("smartProxy.py");
    return file;
},

A continuación se muestra dónde se ejecuta, lo que debería proporcionar una imagen completa de cómo funciona el complemento.

start: function() {
    if (this.process && this.process.isRunning)
        return;
    this.process = cc["@mozilla.org/process/util;1"].createInstance(ci.nsIProcess);
    this.process.init(this.getExeFile());
    this.process.runAsync([], 0, this.processObserver);
    this.setProxy();
    this.executeObservers();
},

¿Cómo hago para encontrar smartProxy.py para que pueda ejecutarse?

Respuestas a la pregunta(2)

Su respuesta a la pregunta