2008-12-31 12 views
5

Estoy tratando de desarrollar una extensión de Firefox que inserte campos de encabezado HTTP adicionales en las solicitudes HTTP salientes (para interactuar con una extensión de Apache que estoy desarrollando al mismo tiempo).Asistencia para principiantes: ¿a dónde pertenece este código?

Si bien entiendo los componentes individuales de una extensión y entiendo los tutoriales básicos que se presentan en la web, me resulta difícil pasar de las extensiones de tutorial "Hello World" a desarrollar una extensión completa.

El código de ejemplo que deseo adaptar para mis propósitos se presenta en la parte inferior de Setting HTTP request headers.

Me pregunto, ¿en qué parte de la jerarquía de extensiones se debe colocar este código y cómo se llama/construye/activa dicho código, se ejecutará automáticamente cuando se inicie la extensión?



Gracias de antemano.

+0

¿Ha intentado buscar una extensión existente que coincida exactamente con lo que está tratando de lograr? Podría ser un comienzo ... – mark

Respuesta

2

Para una extensión básica, colocaría su código en el directorio chrome/content de la extensión. Engancharías este contenido a Firefox usando un overlay. Mientras que las superposiciones suelen ser contenido xul (botones, etc.) pueden ser cualquier cosa. Incluyendo una etiqueta de script que cargaría el fuego de su código Javascript.

0

Ese código es un componente XPCOM y va a un archivo components/<some name>.js.

Debe leer arriba en los componentes de XPCOM si desea cavar, pero sí, los archivos .js en components se cargan al inicio. Dichos archivos contienen un código de registro (comienza en la línea var myModule = { en ese ejemplo), que le informa a Firefox si el componente definido en el archivo está disponible a petición o si se crea una instancia automáticamente.

En ese ejemplo se puede ver el componente de inscribirse para ser notificado de inicio de la aplicación:

catMgr.addCategoryEntry("app-startup", this.myName, this.myProgID, true, true); 

y cuando el manejo de la notificación de App-inicio se registra para la notificación http-en-modificación-petición :

os.addObserver(this, "http-on-modify-request", false);