Como obtener el directorio de configuración del firefox desde mi extension??

0 views
Skip to first unread message

TeTe

unread,
Jul 9, 2007, 12:47:24 PM7/9/07
to DeXUL
Hola,

me gustaria saber como puedo tener la ruta del directorio de
configuración del propio Firefox desde mi extensión, para guardar ahi
un fichero.

¿Hay alguna forma de poder saberlo? ¿ó a lo mejor tb podría yo
ponerselo a pelo...? Lo que pasa es que me interesa que sea generico,
ya que todo el mundo no instalará el firefox en el mismo lugar, y
ademas debería de valer para windows y linux...


Muchas Gracias.
Saludos!!

TeTe

unread,
Jul 10, 2007, 4:06:28 AM7/10/07
to DeXUL
Reformulo la pregunta,

¿Con que ruta podría acceder al directorio donde tengo instalado el
firefox? He probado todas estas pero no consigo que funcione. Bueno
con la de C:\\ si que funciona, pero me interesa que se guarde en
donde esté instalado el firefox.

//var savefile = "C:\\prueba.txt";
//var savefile = "chrome://browser/content/prueba.txt";
//var savefile = "chrome://browser/prueba.txt";
var savefile = "chrome://prueba.txt";

¿A lo mejor tendria que cambiar algo en algun fichero del firefox o de
mi extension?


GRACIAS!!

TeTe

unread,
Jul 10, 2007, 5:39:47 AM7/10/07
to DeXUL
Hola, siento dar el coñazo pero es que no doy con la clave...

voy a poneros lo que he hecho para ver si así alguien sabe lo que
necesito:

----------------------------------------------------------------------------------


var savefile = "C:\\prueba.txt";

//var savefile = "chrome://sqaps/content/prueba.txt";


//var savefile = "chrome://browser/content/prueba.txt";
//var savefile = "chrome://browser/prueba.txt";

//var savefile = "chrome://prueba.txt";

var content = "QUIERO ESCRIBIR ESTO...";

try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to save file was denied.");
}

var file = Components.classes["@mozilla.org/file/local;
1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( savefile );
alert( "HE PUESTO EL SAVEFILE " );

if ( file.exists() == false ) {
alert( "Creating file... " );
file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}

var outputStream = Components.classes["@mozilla.org/network/file-
output-stream;
1"].createInstance( Components.interfaces.nsIFileOutputStream );
// Suponemos que existe una variable con el texto llamada content
outputStream.init(fp.file, 0x04 | 0x08, 420, 0);
var result = outputStream.write( content, content.length );
outputStream.close();
-------------------------------------------------------------------------------------

Esto como esta aquí si funciona, almacenando el fichero en C:\\. Pero
a mi me gustaria guardarlo dentro del directorio donde está instalado
el firefox. He probado varias url's chrome, pero me da fallo cuando
hace "file.initWithPath( savefile );".
Si alguien supiese que deberia poner exactamente se lo agradeceria.

Muchas Gracias.

Tei

unread,
Jul 10, 2007, 7:53:34 AM7/10/07
to de...@googlegroups.com
Hola guenas.

Solo te puedo decir que hace un tiempo necesite esto mismo, y
googleando lo encontre en una pagina donde la gente ponia copipastes
con ejemplos de segmentos de xul.
Y me queme mucho las cejas buscando. Y no recuerdo donde era.

Cuando dices el directorio de firefox, entiendo que dices el
directorio del profile. Pues donde estan los binarios en un sistema
operativo normal no tendrias derechos de escritura.

Prueba a tratar de conocer eso, el directorio del profile.

TeTe

unread,
Jul 10, 2007, 11:30:12 AM7/10/07
to DeXUL
Hola, gracias por contestar.

Me podrias aclarar un poco lo que dices del profile??
Mi proposito era intentar acceder mediante la url chrome alguna parte
del directorio donde está instalado firefox, pensando en que esto
podría ser generico y valerme para siempre...
Con lo que he leido por ahi, supuestamente si se utiliza la url chrome
tienes unos privilegios extras que te permiten acceder a ficheros...

Muchas Gracias!!

carlos campderrós

unread,
Jul 10, 2007, 12:16:45 PM7/10/07
to de...@googlegroups.com
On 7/10/07, TeTe <paco...@hotmail.com> wrote:

Hola, gracias por contestar.

Me podrias aclarar un poco lo que dices del profile??

Los archivos de las extensiones no se guardan en la carpeta donde has instalado el firefox (digamos C:\Archivos de programa\Mozilla Firefox), sinó en el perfil actual (de firefox) del usuario [1]. No sé como obtener esta variable, puesto que supongo q se puede cambiar durante la instalación o a posteriori quizás. Pero podrías mirar otras extensiones a ver como guardan archivos. Por ejemplo, GreaseMonkey[2] guarda los scripts que instalas dentro de una carpeta dentro del perfil.

[1] http://kb.mozillazine.org/Profile
[2] http://www.greasespot.net/

--
Si no puedes deslumbrar con tu sabiduría,
desconcierta con tus gilipolleces
Reply all
Reply to author
Forward
0 new messages