Delirios de un Informático

Las extensiones en Mozilla Firefox Beta

Si eres de los que como yo les gusta estar a la última instalando las últimas betas de Mozilla Firefox te habrás enfrentado al problema de la compatibilidad de las extensiones, que dejan de funcionar debido a que no han sido testeadas en la versión inestable. Una de las soluciones pasa por editar los complementos para modificar las líneas que limitan la instalación a una versión concreta pero los chicos de Mozilla han desarrollado Add-on Compatibility Reporter, una extensión oficial que desactiva la comprobación de compatibilidad de las extensiones (por lo que es posible instalar cualquier extensión) y permite indicarle al autor si es compatible con la versión actual. De este modo nos ahorramos el tener que modificar nada a mano y de paso se ayuda a la comunidad de desarrolladores :).

Weave Minimal: Mozilla Sync en un servidor propio

Firefox Sync (o Mozilla Weave) es un sistema que permite sincronizar todos los elementos de Firefox (favoritos, historial, contraseñas…) entre diferentes equipos o dispositivos. Por el momento funciona en Firefox 3.5 o superior y en Fennec (disponible de momento para Maemo y Android). La aplicación es muy útil y si no deseas utilizar los servidores de Mozilla puedes instalar tu propio servidor, ya que publican el código fuente y sólo requiere de un servidor web con PHP y una base de datos MySQL.

Pero problema es que (como no podía ser de otro modo con Mozilla) el servidor es una tortura instalarlo. Por eso un usuario ha creado una versión mínima que reemplaza MySQL por SQLite y requiere poco más que descomprimir un archivo y añadir una configuración al servidor web (ya sea Apache, Nginx o Lighttpd). El código fuente con las explicaciones puede descargarse desde la página del autor.

NOTA: al configurar el servidor de sincronización es necesario indicar que ya se dispone de una cuenta debido a que esta versión mínima no soporta el alta de usuarios a través de la aplicación, han de darse de alta manualmente.

Cómo usar múltiples versiones de Firefox en Linux

Como programador web necesito probar mis desarrollos en múltiples navegadores en sus diferentes versiones sobre todo para dar soporte a versiones viejas que aún usa un porcentaje significativo de usuarios, aunque tambien para anticiparme a los cambios que traerán las nuevas versiones, utilizando los nighty builds o las betas.

En el caso de Firefox resulta bastante sencillo, ya que permite gestionar fácilmente perfiles separados y las rutas que utiliza son relativas por lo que no importa el directorio desde donde se ejecute. Basta ubicar las versiones en subdirectorios nombrándolas, por ejemplo, con los 2 primeros números: 4.0, 3.6, 3.5 o 3.0. Luego, con este script puede lanzarse una versión concreta ejecutando firefox -P 4.0, lo que sirve para tener también un perfil para cada versión:

#!/bin/bash

# base variables
export FIREFOX_HOME="/path/to/firefox"

# detects version to launch
if [ "x$1" == "x-P" ]; then
    export FIREFOX_VERSION="$2"
fi

# if version is not defined, uses last
if [ "x$FIREFOX_VERSION" == "x" ]; then
    export FIREFOX_VERSION="4.0"
fi

# check if version exists
if [ -f "$FIREFOX_HOME/$FIREFOX_VERSION/firefox" ]; then

    # tell user what version will be opened
    echo "Opening Mozilla Firefox $FIREFOX_VERSION..."

    # launch Firefox
    case "$FIREFOX_VERSION" in
      4.0)
        export GTK_PATH="/usr/lib/gtk-2.0"
        export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins"

        exec "$FIREFOX_HOME/$FIREFOX_VERSION/firefox" -P $FIREFOX_VERSION "$@"
        ;;

      3.6|3.5|3.0)
        export GTK_PATH="/usr/lib32/gtk-2.0"
        export MOZ_PLUGIN_PATH="/usr/lib32/mozilla/plugins"

        exec "$FIREFOX_HOME/$FIREFOX_VERSION/firefox" -P $FIREFOX_VERSION "$@"
        ;;
    esac
# version doesn't exists
else
    echo "Mozilla Firefox $FIREFOX_VERSION not found"
fi

Como se puede ver, al utilizar un sistema de 64 bits es necesario realizar unos pequeños ajustes, ya que hasta la versión 4.0 (aún en beta) sólo había compilaciones oficiales para 32 bits. Si el sistema es de 32 bits pueden eliminarse sin problema los export previos al exec. Para terminar, el script puede ubicarse en /usr/bin/firefox para que el sistema lo tome como el ejecutable por defecto y pueda seguir siendo el navegador por defecto.

Redimensionar la ventana de Firefox sin extensiones

Para los que usamos versiones de desarrollo de Mozilla Firefox (actualmente trabajo con la 4.0pre3 para 64bits) es una lata tener un montón de extensiones que hay que modificar para poder instalarlas. Únicamente uso Firebug (1.6X.0a18 concretamente) pero tengo la necesidad de probar diferentes resoluciones en las páginas que desarrollo y lo ideal para mí es no depender en absoluto de extensiones. Por eso este pequeño tip: basta añadir favoritos con el siguiente código:

javascript:window.resizeTo(800x600);void(0);
javascript:window.resizeTo(1024,768);void(0);
javascript:window.resizeTo(1280,800);void(0);

Rápido, sencillo y sin sobrecargar el navegador con extensiones :).