Firefox:programacionmodulos

De Evenxus Wiki
Saltar a: navegación, buscar

Mozilla Firefox

Como crear un complemento

Los complementos o extensiones son miniprogramas que se ejecutan bajo el amparo del navegador y nos permiten acceder de modo local al codigo HTML que recibe el navegador. Podemos interactuar con el, recibiendo eventos desde el codigo HTML-JS y actuar a su vez con el.

Aunque existe un camino academico(https://addons.mozilla.org/es/developers/) y como siempre recomiendo su lectura voy a crear este minituto para crear-editar un complemento.

Los complementos se desarrollan en HTML+JS y usaremos para ello dos herramientas muy sencillas. Notepad++ como editor y como debuger un complemento llamado Javascript Debugger que al contrario que Firebug nos permite tracear los scripts de los complementos.

Usaremos tambien otro complemento llamado Quickrestart que permite con una combinación de teclas (CTRL+ALT+R) reiniciar el Firefox rapidamente. Esto ultimo es necesario para "recargar" los scripts cuando los cambiemos porque Firefox los carga al inicio y sino lo reiniciamos no se veran los cambios. Por cierto deberemos de cambiar la versión maxima en el install.rdf para que funcione en la version actual de Firefox....

Que es un complemento

Los complementos son ficheros con extensión XPI, que en realidad son ficheros comprimidos con ZIP. Si cambiamos su extensión podemos descomprimirlos, editarlos y volverlos a comprimir y convertir en XPI.

Cuando instalamos un XPI en Firefox este se copia a la carpeta extensiones del perfil de Firefox, p.e. en Windows 7 este seria(Cambiando lógicamente el nombre del perfil):

C:\Users\USUARIO\AppData\Roaming\Mozilla\Firefox\Profiles\0ff3s4j8.default\extensions

Vamos a hacer un pequeño cambio para simplificar nuestro trabajo de desarrollo y debugeo

Editando el install.rdf para poder usarlo "en vivo"

Este fichero que se encuentra dentro del XPI gobierna como se instala nuestro complemento y define muchas cosas. Nombre, identificador y versión del complemento, version minima y maxima de Firefox que puede usarlo, etc...

Vamos a añadir al final del tag Description(Justo antes del cierre con </Description>) esta cadena : <em:unpack>true</em:unpack> , con ella conseguiremos que cuando el script se instale en la carpeta de Firefox lo haga descomprimido y no como XPI. De esta manera veremos sus carpetas y ficheros y podremos editarlo "en vivo".

Firefox carga sus complementos al inicio y por lo tanto cada vez que cambiemos algo en el complemento, deberemos reiniciar Firefox con CTRL+ALT+R para que los cambios tengan efecto.

Debugeando

Vamos a usar el complemento Javascript Debugger. Añadiremos un boton para lanzarlo en la barra de Firefox y ya tendremos un debuger que nos permitirá tracear nuestros JS de los complementos.

Las ultimas versiones de Firefox viene con la llamada "Caja de herramientas del navegador" que nos permite desde : Desarrollador WEB->Caja de herramientas del navegador lanzar un potente debugger que funciona en muchos casos mejor que Javascript Debugger.

En ambos casos es importante "recargar completamente" el navegador para que este vuelva a cargar los complementos. Es un incordio total....

Que lenguaje se usa para crear los complementos

Se trata de XUL(XML User Interface Language, Lenguaje XML para la Interfaz de Usuario) que es un lenguaje basado en XML.


Analizando un complemento Firefox

Instalando el complemento y definiendo sus parámetros principales

Dentro del complemento encontramos un fichero llamado install.rdf. Este fichero se encarga de instalar el complemento y definir su funcionamiento.

<?xml version="1.0" encoding="UTF-8"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:em="http://www.mozilla.org/2004/em-rdf#">
  <Description about="urn:mozilla:install-manifest">
    <em:id>evenxupos@evenxus</em:id>
    <em:name>EvenxusPOS</em:name>
    <em:version>1.0</em:version>
    <em:creator>Evenxus</em:creator>
    <em:description>Sistena de conexion de EvenxusPOS con dispositivos POS.</em:description>
    <em:optionsURL>chrome://evenxuspos/content/options.xul</em:optionsURL>
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->
        <em:minVersion>1.5</em:minVersion>
        <em:maxVersion>25</em:maxVersion>
      </Description>
    </em:targetApplication>
    <em:unpack>true</em:unpack>
  </Description>
</RDF>


A tener en cuenta

  • En el se define el identificador del complemento que es un identificador único, en este caso "evenxupos@evenxus", usamos primero de la arroba el nombre del complemento y detrás el nombre del grupo de programación.
  • Nombre del complemento que se mostrara en Firefox en este caso EvenxusPOS.
  • Versión del complemento, en este caso 1.0.
  • Nombre del creador del complemento en este caso Evenxus.
  • Descripción del complemento.
  • Pagina para configurar los parámetros del complemento definida con el tag optionsURL.
  • Versiones del Firefox(En este caso aunque se puede cambiar el tag por Thunderbird) que pueden usar el programa con una Mínima y una Máxima con el tag targetApplication.
  • Y el tag ya conocido que permite que el complemento se ejecute descomprimido y no como un XPI.