Curso: Creación de extensiones para Firefox: 1. Introducción

hace 3 años y 5 meses - 375 visitas

Creación de extensiones para Firefox

Prólogo

1. Introducción

En este primer capítulo, describiré los elementos con los que vamos a trabajar a la hora de crear una extensión para Firefox.

1.1. ¿Qué es Firefox?

¡Vaya pregunta! Dirán algunos... Ya sabemos todos que Firefox es un navegador web, el mejor navegador web, ¿verdad?

Teniendo claro ese primer concepto, hay que conocer un poquito más qué es Firefox. Firefox se compone de varios módulos o componentes:

  • Gecko: El principal, y se podría decir que el corazón de Firefox. Es el motor que se encarga de transformar el código HTML/XML/CSS en la representación visual que vemos en el navegador. Dentro de Firefox, visualmente hablando, sería la parte del navegador donde se muestra una web.
  • SpiderMonkey: Es la máquina virtual de JavaScript de Firefox. SpiderMonkey fue el primer motor JavaScript desarrollado, mantenido actualmente por Mozilla, e implementado en multitud de aplicaciones, como Firefox, o Yahoo Widgets. Es parte de Gecko.
  • XULRunner: Es un entorno de ejecución de aplicaciones XUL. Todo lo que ves en Firefox, es una aplicación XUL, una serie de documentos XUL. Un documento XUL define elementos como la ventana principal, una ventana de diálogo, o controles como botones, etiquetas, menús, pestañas, barras de estado, etc.

1.2. XUL Overlay

XUL Overlay es un método para solapar un documento XUL a otro. Es decir, dado un documento XUL, que define la barra de estado, se puede crear un XUL Overlay, para añadir más controles a esa barra de estado, para modificar los que hay, o para eliminarlos.

Dado que el navegador Firefox es una aplicación XUL, es posible modificar su apariencia y comportamiento creando documentos XUL Overlay.

1.3. ¿Qué es una extensión para Firefox?

Un extensión para Firefox, es sencillamente la modificación de la aplicación XUL del navegador Firefox, mediante XUL Overlay (concretamente el browser.xul de Firefox, que veremos más adelante).

Además de los documentos XUL, una extensión puede contener código Javascript, imágenes, vídeos, hojas de estilo, documentos XML, etc. E incluso es posible crear componentes (XPCOM) escritos en C, con los que poder interactuar en Javascript (a través de XPConnect).

Si bien este manual no tiene intención de entrar en detalle en el lenguaje XUL, le dedicaré un capítulo más adelante. Para conocer más a fondo XUL, puedes consultar los siguientes enlaces:

La extensión en sí, es un fichero con extensión XPI, que no es otra cosa que un archivo ZIP conteniendo el fichero RDF de instalación (install.rdf), un fichero que define el árbol de directorios de la extensión y los overlays que haremos (chrome.manifest), y el contenido de nuestra extensión (documentos XUL, hojas de estilo, imágenes, javascript, etc.).

En el siguiente capítulo crearemos nuestro propio entorno de desarrollo de extensiones (Firefox Extensions IDE, FEIDE, para abreviar). Y una vez lo tengamos preparado, construiremos una extensión de ejemplo con la que poder empezar a jugar.

Se escapa a la intención de este curso el explicar Javascript, pero será necesario tener altos conocimientos para continuar con el manual. Por lo que, si de hecho no conoces Javascript, ahora es un buen momento para aprenderlo, antes de continuar.


autor

Javier Pérez de la Axarquía

Padre, marido, amante, humanista, programador, escritor, emprendedor... y algunas cosas más que aún no sé que soy.

etiquetas
artículos relacionados
comentarios
avatar de TheViejo
#1
TheViejo - hace 3 años y 5 meses ir arriba escribe un comentario
Hola es genial tu iniciativa, yo solo he programado una extensión para firefox, que muy pronto daré a conocer, tuve que destripar muchas extensiones para saber como funcionaban internamente y así orientarme. La verdad es relativamente fácil, siempre que tengas una base en programación. Lo que estos de Mozilla deberían de pulir es lo de la creación de las Gui, o lo que es lo mismo la creación de las ventanas donde se hallan los controles con lo que configurar mi extensión por poner un ejemplo ejemplo, me resulto estresante crear un dialogo de "acerca de", de mi extensión.



Bueno lo dicho, muy buena iniciativa y ya tienes un nuevo lector.



Un saludo.
avatar de Curro
#2
Curro - hace 3 años y 5 meses ir arriba escribe un comentario
¿Todo esto será compatible con el nuevo firefox 3?



Lo digo porque creo que trae bastantes cambios.
avatar de javier.perez
#3
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
Curro, no estoy al tanto de los cambios en el sistema de extensiones de Firefox 3, pero lo básico, que es de lo que trata este curso, no debería cambiar. Y si cambiara ten por seguro que le dedicaré el artículo pertinente ;)
avatar de Ñete
#4
Ñete - hace 3 años y 5 meses ir arriba escribe un comentario
Muy buena la idea. Estaba interesado en el tema de extensiones, en mi caso para Thunderbird pero he encontrado poca información. ¿ Es el sistema parecido?.
avatar de javier.perez
#5
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
Sí Ñete, el sistema es el mismo para Thunderbird que para Firefox. Y ya que mencionas el tema, intentaré ampliarlo para ambas aplicaciones.
avatar de david
#6
david - hace 3 años y 5 meses ir arriba escribe un comentario
hola,

¿Crees que es posible crear una extension para FF que elimine la ventana de confirmación de impresión? (o sea que no haya que confirmar con la función JS window.print)

Seria para un uso interno claro, no creo que a nadie le intereseria tener su impresora abierta a cualquier pagina :)

Saludos

david
avatar de javier.perez
#7
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
david, en principio se puede modificar cualquier comportamiento de Firefox, y ese no creo que sea una excepción. Eso sí, no sabría decirte cómo, aunque lo mismo existe alguna extensión que "atrapa" la impresión de página, y podrás ver cómo lo hace destripando su código.
avatar de david
#8
david - hace 3 años y 5 meses ir arriba escribe un comentario
wow, una respuesta en 3 minutos!!!

Y que me llena de esperanza ademas. :)

Gracias Javier, voy a seguir tu consejo, o sea buscar una extension relativa a la impresion y destriparla.

Saludos
avatar de javier.perez
#9
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
No olvides comentar por aquí tus progresos ;)
avatar de Grindkore
#10
Grindkore - hace 3 años y 5 meses ir arriba escribe un comentario
Genial iniciativa! A ver si así me animo a escribir alguna extensión para el firefox, que algunas ideas tengo por allí pero por pereza nunca me pongo... ésto facilitará las cosas.
avatar de NEOline
#11
NEOline - hace 3 años y 5 meses ir arriba escribe un comentario
Pregunta, esto es para crear extensiones para el Firefox en su versión 2.0 en adelante? pues no es lo mismo (comprado angustiosamente hace 5 minutos despues de seguir un curso de otra web).
avatar de javier.perez
#12
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
Este curso es para Firefox 2.0 en adelante, sí.
escribe un comentario

Se permite código HTML: <a> <img> <b> <strong> <em> <i> <strike> <p>

#13
- hace 1 segundo
Normas de uso
El autor del comentario se hace responsable del contenido de éste. En caso de que el autor del comentario infringiera alguna ley, se ofrecerán todos los datos necesarios a las autoridades pertinentes para que tomen las medidas oportunas.
Se debe escribir correctamente en el mismo idioma del artículo que se comenta. En caso contrario podría ser eliminado.
El comentario debe ceñirse a la temática del artículo.

En la siguiente lista de palabras, haz clic en creacion:
  1. curso
  2. creacion
  3. de
  4. extensiones
  5. para
  6. firefox
  7. 1
  8. introduccion
Esta pregunta es para evitar comentarios spam. Perdón por las molestias.