--- title: Actualizar extensiones para Firefox 3 slug: Actualizar_extensiones_para_Firefox_3 tags: - Firefox 3 translation_of: Mozilla/Firefox/Releases/3/Updating_extensions ---
{{FirefoxSidebar}}

{{ Fx_minversion_header(3) }}

Este artículo ofrece información que será de utilidad para desarrolladores que deseen actualizar sus extensiones, para que éstas funcionen correctamente con Firefox 3.

Antes de continuar, queremos sugerirte algo: si el único cambio que requiere tu extensión es modificar el campo maxVersion en el manifiesto de instalación, la extensión está disponible en el servidor addons.mozilla.org y ¡no necesitarás actualizar tu extensión a una nueva versión! Simplemente usa el Panel de Control para desarrolladores en AMO para modificar maxVersion. De esta manera, puedes evitar el trabajo de tener que volver a revisar tu extensión.

 

Paso 1: Actualiza el manifiesto de instalación

El primer paso —y para la mayoría de las extensiones, el único que será necesario— es actualizar el archivo install.rdf dentro del manifiesto de instalación para indicar la compatibilidad con Firefox 3.

Sólo debes buscar la línea que indica la máxima versión compatible de Firefox, lo que para Firefox 2, probablemente sea:

 <em:maxVersion>2.0.*</em:maxVersion>

Cámbiala para indicar compatibilidad con Firefox 3:

 <em:maxVersion>3.0.*</em:maxVersion>

A continuación, reinstala la extensión.

Recuerda que en Firefox 3 no necesitas incluir el ".0" extra en el número de la versión. Por lo tanto, en lugar de escribir "3.0.0.*", sólo necesitas usar "3.0.*".

Ha habido (y continuará habiendo) una serie de cambios en las APIs, lo que muy probablemente averiará algunas extensiones. Aún estamos trabajando para confeccionar una lista completa de estos cambios.

Si tu extensión todavía usa un script Install.js en vez de un manifiesto de instalación, necesitas hacer la transición a un manifiesto de instalación lo más pronto posible. Firefox 3 no implementará el script install.js en documentos XPI.

Agregar localizaciones al manifiesto de instalación

Firefox 3 cuenta con tres nuevas propiedades en el manifiesto de instalación para especificar descripciones de localización. Los métodos antiguos todavía funcionan. Sin embargo, los nuevos permiten que Firefox escoja la localización, aún cuando la extensión esté deshabilitada o pendiente de instalación. Visita Localizar las_descripciones_de_las_extensiones para más detalles.

Paso 2: Asegúrate de suministrar actualizaciones seguras

Si suministras extensiones por tu propia cuenta y no usas un proveedor de hosting seguro como addons.mozilla.org, debes asegurarte de suministrar algún método seguro para la actualización de tus extensiones. Esto puede hacerse de dos formas: puedes usar un hosting con servicio de SSL o bien, puedes usar claves criptográficas para firmar la información de actualización. Lee Cómo hacer actualizaciones seguras para más información.

Paso 3: Debes estar al tanto de los cambios en las APIs

Muchas APIs han sido modificadas de forma significativa. Los cambios más importantes, que seguramente afectarán a muchas extensiones son:

DOM

Los nodos de documentos externos deberán copiarse idénticamente usando importNode() (o adoptarlos usando adoptNode()) antes de poder insertarlos en el documento actual. Para más información acerca de cuestiones relacionadas con ownerDocument, visita W3C DOM FAQ.

Actualmente, Firefox no exige hacerlo aunque sí lo hizo durante algún tiempo, durante el desarrollo de Firefox 3. Lo que ocurrió fue que muchos sitios sufrían averías cuando esta política era obligatoria. Nuestra recomendación para los desarrolladores web es que corrijan su código para cumplir con esta regla y así lograr una mejor compatibilidad a futuro.

Marcadores e Historial

Si de alguna forma tu extensión tiene acceso a Marcadores o Historial, necesitarás un gran esfuerzo para hacer que sea compatible con Firefox 3. Las APIs antiguas que daban acceso a esta información han sido reemplazadas por la nueva arquitectura Catálogo (Biblioteca). Visita la Guía para la migración a Catálogo (Biblioteca) para más detalles acerca de cómo actualizar tus extensiones para el uso de las APIs de Catálogo (Biblioteca).

Administrador de descargas

La API del Administrador de descargas ha cambiado ligeramente debido a la transición del almacén de datos RDF al uso de la API Almacenamiento. Esto debería ser una transición sencilla y fácil. Además , se ha modificado la API que controla los procesos de descarga para permitir varios receptores del administrador de descargas. Visita {{ Interface("nsIDownloadManager") }}, {{ Interface("nsIDownloadProgressListener") }} y Controlar descargas para más información.

Administrador de contraseñas

Si tu extensión tiene acceso a información de inicio de sesión de usuario en el Administrador de contraseñas, deberás actualizarla para poder utilizar la nueva API para el Administrador de inicio de sesión.

También puedes sobrescribir el almacén del administrador de contraseñas interno si quieres ofrecer tu propia implementación del almacén de contraseñas en la extensión. Visita Crear un módulo de almacenamiento para el Administrador de inicio de sesión para más detalles

Ventanas emergentes (Menús, Menús contextuales, Tooltips y Paneles)

En Firefox 3, se ha modificado sustancialmente el sistema XUL de ventanas emergentes. El sistema de ventanas emergentes ahora contempla menús principales, menús contextuales y paneles. Se ha creado una guía para Utilizar Ventanas emergentes que detalla cómo funciona este sistema. Algo que debes tener en cuenta, es que se desaconseja el uso de popup.showPopup en favor de los nuevos popup.openPopup y popup.openPopupAtScreen.

Autocompletar

El método handleEnter() de la interfaz nsIAutoCompleteController ha cambiado para aceptar un argumento que indique si el texto ha sido seleccionado desde una ventana emergente para Autocompletar o bien, por el usuario que ha pulsado la tecla Entrar (Enter) después de ingresar texto.

DOMParser

Interfaces eliminadas

Las siguientes interfaces han sido eliminadas en Gecko 1.9, el motor de renderizado de Firefox 3. Si tu extensión utiliza cualquiera de estas interfaces, deberás actualizar tu código:

Paso 4: Comprueba los cambios importantes en el chrome

Se ha producido un cambio menor en el chrome que puede requerir cambios en tu código. Se ha añadido un nuevo vbox llamado "browser-bottombox", que integra la barra de búsqueda y la barra de estado en la parte inferior de la ventana del navegador. Aunque esto no afecta la apariencia de la pantalla, puede que afecte tu extensión si el chrome se superpone, en relación a los elementos descriptos.

Por ejemplo, si has superpuesto algún elemento del chrome antes de la barra de estado de la siguiente manera:

<window id="main-window">
  <something insertbefore="status-bar" />
</window>

Debes cambiar tu código a algo que se parezca a:

<vbox id="browser-bottombox">
  <something insertbefore="status-bar" />
</vbox>

O bien, emplear la siguiente técnica para hacer que la superposición funcione en Firefox 2 y Firefox 3 por igual:

<window id="main-window">
  <vbox id="browser-bottombox" insertbefore="status-bar">
    <something insertbefore="status-bar" />
  <vbox>
</window>

{{ Note("Este cambio es efectivo para Firefox 3 beta 4 y la prebeta 4.") }}

Otros cambios

Añade aquí cambios sencillos que debas realizar cuando actualizas tu extensión para que funcione con Firefox 3.