Al igual que muchos/as, acostumbro descargar diversidad de cosas de los varios
file-hosting/
alojamientos de archivos que hay en la vuelta. Algunos de estos proveen herramientas para facilitarnos la vida al momento de subir/descargar, organizar y/o buscar archivos.
En este post hablaré y mostrare cómo solucionar un problema que presenta la herramienta
Mega Toolbar, que es propia y desarrollada para el file-hosting
Megaupload.
El problema que trato a continuación se da si se cumplen los siguientes requisitos, lo cual no quita que suceda en algún otro caso particular.
- Navegador Mozilla Firefox (versión 1.5 hasta la 3.5 inclusive)
- Sistema operativo Windows XP en español
- Mega Toolbar 3
El que windows este en español no es un error. Capaz que basta con que no este en inglés pero, al no estar seguro, prefiero no darlo por sentado. Así pues puede que este post sea provechoso para la comunidad habla hispana más que nada :p
Advertencia! De aquí en más comienza la explicación del problema y de cómo solucionarlo uno mismo. Para arreglarlo sin entrar en más detalles vaya directamente al último párrafo del post.En la siguiente imagen se ve la Mega Toolbar como la vemos en firefox, y también aprovecho para señalar no la raiz de este problema pero sí la funcionalidad que esta estrechamente vínculada mismo: el
Email.

Ya con la barra instalada en el sistema y activado el complemento de ésta en Firefox, cada vez que levantamos este último nos muestra esta excepción,
[Exception... "Component returned failure code: 0x80520001
(NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]" nsresult: "0x80520001
(NS_ERROR_FILE_UNRECOGNIZED_PATH)" lccation: "JS frame :: chrome://megaupload/content/xpcom/network.js :: anonymous :: line 38" data: no]
Capaz con una imagen es más fácil de reconocerla

La excepción indica que el error se produce en la línea nro 38 del JavaScript network.js. Si se desea se puede ver el script directamente en el navegador accediendo a la dirección "
chrome://megaupload/content/xpcom/network.js" (notar que se escribe
chrome y no
http).
En la línea 38 veremos la sentencia '
file.initWithPath(path);' en la cual se produce la excepción pero no es el problema. Esta función, según su
especificación, debe recibir rutas absolutas.
Durante la carga del complemento de firefox para instanciar la barra, se pretende asociar el ejecutable
EmailNotifier.exe a la funcionalidad Email que se muestra en la primer imagen, el cual se ubica en directorios diferentes acorde al idioma de nuestra distribución de windows:
- español C:\Documents and Settings\All Users\Datos de programa\EmailNotifier
- inglés C:\Documents and Settings\All Users\Appliaction Data\EmailNotifier
Ahora antes de avanzar más, ubicaremos dicho complemento de firefox para esta barra problemática.
Como habrán notado, en un mismo equipo, cada usuario puede gestionar su preferencias de firefox independientemente de las preferencias de los demás usuarios, en lo que también se incluyen los complementos.
La información de las preferencias y complementos se almacenan en el perfil del usuario. Este se encuentra en el directorio '
C:\Documents and Settings\NOMBRE DE USUARIO\Datos de programa\Mozilla\Firefox\Profiles' (cambiando
Datos de programa a
Application Data para la versión en inglés). Nuestro profile lo encontraremos en una carpeta con un nombre raro que tiene como postfijo el texto '.default'.
El contenido de esta no lo tocaremos pues lo que nos es relevante esta en la carpeta
extensions.
Una vez en la carpeta
extensions, veremos carpetas con nombres más que desagradables. Lo que debemos hacer es encontrar la que corresponde a el complemento de la Mega Toolbar, lo cual lograremos buscando aquella que tenga, dentro de una carpeta con nombre
chrome, el archivo
megaupload.jar.
Para esclarecer donde se debe ubicar el archivo
megaupload.jar, pondré como ejemplo el directorio donde se ubica en mi caso;
C:\Documents and Settings\Guillermo\Datos de programa\Mozilla\Firefox\Profiles\luybz4xj.default\extensions\{991A772A-BA13-4c1d-A9EF-F897F31DEC7D}\chrome\megaupload.jarHorrible, no es verdad?
Cuando accedimos con el navegador al script network.js a través de la dirección
chrome://megaupload/.../network.js lo que hicimos fue navegar dentro de éste archivo jar.
Continuando con el problema.
Necesitaremos abrir dicho jar para explorar su contenido (así como abrimos un .zip) utilizando algún compresor que lo soporte.
WinRAR lo hace; para abrirlo debemos ir a
Abrir con y seleccionar el programa WinRAR, pusto que sino puede que intente ejecutarlo como a un ejecutable java.
Yo recomiendo utilizar el compresor
7-Zip el cual es
free y soporta casi que todo formato.
Una vez abierto debermos extraer el archivo
content\xpcom\dir.js para poder editarlo y luego sustituir el que se encuentra en el jar.
Este javascript define funciones que son utilizadas por el complemento para obtener las rutas (absolutas) de varios directorios en nuestro sistema operativo. El que nos es relevante, como se mencionó antes, es el de
Datos de programa.
La función encargada de ubicar dicho directorio es '
DTFox.dirUtil.getProgDataDir' como vemos en la línea nro 64 del archivo. La siguiente imagen es una captura del script original.

No hay que ser un gran conocedor de la programación para darse cuenta que lo que hace es usar la ruta en que se encuentra la carpeta
Start Menu, puesto que la carpeta Datos de programa se ubica en el mismo directorio que ésta. Aquí es donde falla el complemento.
La carpeta
Start Menu tiene por nombre
Menú Inicio para windows en español. Por esto es que no encuentra el directorio y retorna un ruta no absoluta que también daría problema porque diría
/Application Data cuando debería ser
Datos de programa en español.
A continuación tienen una implementación de dicha función y luego una captura de como quedaría el archivo. Bastara con que sustituyan la original por la que aquí les paso y graben, en el archivo jar, el javascript dir.js ya modificado. También cabe mencionar que cada uno puede y sabrá arreglar dicha función como mejor le parezca, aquí simplemente les hago llegar mi solución la cual he comprobado que funciona.
// Return Program Data directory
DTFox.dirUtil.getProgDataDir = function (){
common = DTFox.dirUtil._getSpecialDir('CmStrt');
if (common.substr(0, common.lastIndexOf("\\Microsoft")) == ''){
if (-1 != common.lastIndexOf("\\Start Menu")) { // encontro start menu (english)
progData = common.substr(0, common.lastIndexOf("\\Start Menu")) + "\\Application Data";
} else if (-1 != common.lastIndexOf("\\Menú Inicio")) { // encontro menu inicio (spanish)
progData = common.substr(0, common.lastIndexOf("\\Menú Inicio")) + "\\Datos de programa";
} else {
alert("The lenguaje of your windows distribution is not well supported by " +
"Megaupload Toolbar, sorry :s\nMegaupload Toolbar no soporta muy " +
"bien que digamos el lenguaje de tu distribución de windows, lo lamento :s");
}
}else{
progData = common.substr(0, common.lastIndexOf("\\Microsoft"));
}
return progData;
}

Luego de haber hecho todo lo anterior tenemos que reiniciar el complemento de la Mega Toolbar para que tome los cambios. El reiniciar un complemento es simplemente desactivarlo y luego volverlo a activar.
Para esto, en Firefox deben realizar los siguientes pasos:
- acceder al menú Herramientas >> Complementos y buscar el complemento Megaupload Toolbar 3.x
- seleccionar y desactivar (no desinstalar) el complemento
- reiniciar Firefox
- acceder nuevamente al menú de Complementos, buscar el complemento Megaupload Toolbar y activarlo
- reiniciar Firefox nuevamente
Con esto estaría solucionado.
Igual quiero mencionar que este problema no tiene que ver con el problema de la página que aparece al crear nuevas tabs. Esto un tema de configuración que explicaré como modificarla en el próximo post seguramente.
Claro esta que no voy a esperar que todo el mundo siga el proceso anterior. Lo hice a fin de explicar a quien le interese saber cómo lo solucione.
Para quien busque arreglarlo rápidamente y seguir con otra cosa, aquí debajo dejo un link (haganme saber si lo necesitan pero ya caduco) para que descarguen el archivo
megaupload.jar el cual tendrán que simplemente ubicarlo, sustituyendo al original que más arriba mencioné cómo encontrarlo, en un direcotorio similar a este
C:\Documents and Settings\nombre_de_usuario\Datos de programa\Mozilla\Firefox\Profiles\nombre_horrible.default\extensions\{991A772A-BA13-4c1d-A9EF-F897F31DEC7D}\chrome\megaupload.jar.
Archivo megaupload.jar arreglado