Visit Mozilla.org

Instalar el manifest

De MDC


Imagen:traduccion-pendiente.png Esta página está traduciéndose a partir del artículo Install Manifests, razón por la cual puede haber algunos errores sintácticos o partes sin traducir. Puedes colaborar continuando con la traducción

Tabla de contenidos

[editar] Introducción

De aquí en adelante a los addon les llamaremos complemento, en algunos navegadores Mozilla, dependiendo del idioma español descargado para traducir la interfaz del navegador, se leerá como agregado en Herramientas->Agregado.

Un instalador "Manifest" es el archivo Administrador-Activador del complemento que una aplicacion XUL usa para determinar la informacion acerca de un complemento como es inicialmente instalado. Este Contiene metadatos que identifican el complemento, proporcionando informacion acerca de quien lo ha creado, donde se puede encontrar mas informacion acerca del complemento, con cuales versiones de las aplicaciones es compatible, como debe ser actualizado y asi sucesivamente.

El formato de un instalador "Manifest" es RDF/XML.

El archivo debe ser llamado install.rdf y ubicarse en el nivel superior de un complemento de un archivo XPI.

[editar] Disposicion

La disposicion basica de un instalador "Manifest" es tal como:

<?xml version="1.0"?>

<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">
    <!-- properties -->
  </Description>
</RDF>

Algunas propiedades son requeridas, otras son opcionales. Algunas tienen simples cadenas, otras son recursos complejos.

[editar] Referencia requerida en las propiedades

Su instalador "Manifest" debe especificar estas propiedades correctamente de lo contrario estas propiedades podrian no ser instaladas.

[editar] id

La id de la extension, es como:

  • GUID (generada usando guidgen en Windows, uuidgen en Linux and makeuuid en Solaris) (Firefox 1.0)
  • Firefox 1.5 y superiores: Una cadena fomateada como: nombreextension@organizacion.tld

El ultimo formato es significativamente facil de generar y manipular . Firefox 1.5 tienen una comprobacion para asegurarse que su id falla en un formato o el otro y rechazará la instalacion de complemetos que tengan ids mal formados.

Ejemplos

<em:id>miextension@misitio.com</em:id>

<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>

[editar] version

La cadena versión identifica la versión del complemento que es proveído.

Para Firefox/Thundebird 1.0, el formato debe cumplir las reglas especificas en Extensión, Version, Actualizando y Compatibilidad. Para Firefox/Thundebird 1.5, ver Herramientas para formato de versión.

Ejemplos

<em:version>2.0</em:version>

<em:version>1.0.2</em:version>

<em:version>0.4.1.2005090112</em:version>

Firefox 1.5 / XULRunner 1.8 - complementos que no usan un formato de versión valido no serán instalados. El formato de la versión es diferente de, aunque es al revés-compatible con, 1.0's.

Para complementos alojados en addons.mozilla.org - El actualizador del sitio Mozilla puede re-empaquetar su complemento y corregir o rechazar cadenas mal formadas de versiones.

[editar] type

Un valor de tipo entero representa el tipo de complemento.

2Extensiones
4Temas
8Local
16Plugin
32Multiple Item Package

Ejemplos

<em:type>2</em:type>

Firefox 1.5 Esta propiedad fue añadida para Firefox 1.5, y solo es requerida para otros tipos de complementos como Extensiones y Temas.

[editar] targetApplication

Un objeto que especifica la aplicacion a la cual se dirije este complemento. Esto significa que el complemento trabajará con la aplicacion definida por esta propiedad (<em:id>) especificada (para una lista compensiva de IDs de aplicaciones vea "Aplicaciones validas para Desarrolladores de Complementos", desde la minimina version (<em:minVersion>) incluyendo la maxima version (<em:maxVersion>). Estas cadenas de version son formateadas del mismo modo que la propiedad version y será comparada con la versión de la aplicación; esto permite que el autor de la extension especifique sobre cuales versiones de Firefox seran probadas con el.

Nota: En las versiones Firefox 1.0 a 1.0.6 todas tienen una version de aplicacion de 1.0. Las actualizaciones de Seguridad y estabilidad de Firefox 1.5 tienen una version de aplicacion: 1.5.0.1, 1.5.0.2, etc. Las extesiones compatibles con Firefox o Thunderbird 1.5 deben especificar una maxVersion de 1.5.0.*, entonces quedan automaticamente compatibles con las actualizaciones de seguridad y estabilidad de esta version.

Las extensiones compatibles con Firefox 2 deben especificar una maxVersion de 2.0.0.*

El instalador "Manifest" debe especificar al menos uno de estos objetos, y podría especificar mas aplicaciones multiples si el administrador del complemento lo soporta (e.g. Firefox and Thunderbird).

Ejemplos

<em:targetApplication>
 <Description>
  <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> 
  <em:minVersion>1.5</em:minVersion>
  <em:maxVersion>2.0.0.*</em:maxVersion>
 </Description>
</em:targetApplication>

[editar] name

El nombre del complemento - previsto para mostrarlo en el UI (interfaz del usuario).

Ejemplos

<em:name>Mi Extension</em:name>

[editar] Referencia de Propiedades Opcionales

Usted podrá necesitar proveer estas propiedades, dependiendo de las capacidades de su complemento.

[editar] description

Una corta descripción del complemento - prevista para mostrar en el UI (interfaz del usuario). Esta descripción debe encajar en una pequeña linea de texto..

Ejemplos

<em:description>Herramienta Avanzada foo.</em:description>

[editar] creator

El nombre del creador/desarrollador principal - prevista para mostrar en la interfaz del usuario.

Ejemplos

<em:creator>John Doe</em:creator>

o

<em:creator>El Equipo Extensión </em:creator>

[editar] developer

El nombre de los co-desarrolladores. Usted puede especificar mas de uno de estos valores para mostrar varios desarrolladores. Nuevo en Firefox 2

Ejemplos

<em:developer>Jane Doe</em:developer>
<em:developer>Koos van der Merwe</em:developer>

[editar] translator

Lo(s) nombre(s) de los traductores. Usted puede especificar mas de uno de estos valores y colocar varios traductores. Nuevo en Firefox 2

Ejemplos

<em:translator>Janez Novak</em:translator>
<em:translator>Kari Nordmann</em:translator>

[editar] contributor

Lo(s) nombre(s) de contribuidores adicionales. Usted puede especificar mas de uno de estos valores y colocar varios contribuidores.

Ejemplos

<em:contributor>John Doe</em:contributor>

<em:contributor>John Doe</em:contributor>
<em:contributor>Jane Doe</em:contributor>
<em:contributor>Elvis Presley</em:contributor>

[editar] homepageURL

Un enlace a la pagina del complemento - prevista para mostrar en la interfaz del usuario.

Ejemplos

<em:homepageURL>http://www.foo.com/</em:homepageURL>

[editar] updateURL

Es un enlace a una actualización personalizada del archivo "Manifest" que especifica actualizaciones viables del complemento. El fomato es descrito a continuación . Si esta activado el administrador del complemento periódicamente verá con el "Manifest" si hay versiones mas recientes disponibles.

Atencion: Es extremadamente recomendado que el updateURL sea un enlace HTTPS (seguro). Si no es seguro las updateURL pueden ser secuestradas por un archivo malicioso update.rdf, habilitando malwares (codigo dañino) para infiltrarse a usuarios de computadoras. Alternativamente, usted puede alojar su extensión en AMO y estar completamente tranquilo con su updateURL. Este proveerá actualizaciones seguras automaticamente.

Su servidor debe enviar este archivo como text/rdf o el analizador de actualizaciones no funcionará. text/xml también parecerá trabajar (proyectos en mozdev.org)

El administrador de complemento reemplazará los siguientes valores dentro de la URL en caso que usted genere la respuesta RDF dinámicamente, tales como usando PHP o CGI:

%REQ_VERSION%La versión de la petición. Actualmente 1
%ITEM_ID%La id del complemento que es actualizado
%ITEM_VERSION%La version del complemento que es actualizado
%ITEM_MAXAPPVERSION%La maxVersion del targetApplication objeto correspondiente a la aplicación actual para el complemento que es actualizado .
%APP_ID%El id de la aplicación actual
%APP_VERSION%La versionde la aplicación actual
%APP_OS%El valor del OS_TARGET de la compilación de Sistema Firefox, identificando el sistema que es utilizado. Nuevo en Firefox 1.5
%APP_ABI% El valor del TARGET_XPCOM_ABI de la compilación de Sistema Firefox, identificando la combinación arquitectura/compilador usado para compilar la aplicación actual. Nuevo en Firefox 1.5

Ejemplos

<em:updateURL>http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;version=%ITEM_VERSION%</em:updateURL>
<em:updateURL>http://www.foo.com/extension/windows.rdf</em:updateURL>

Para complementos alojados en addons.mozilla.org: Usted no puede especificar una propiedad updateURL.Por defecto, las aplicaciones Mozilla usando el administrador de complemento (tales como Firefox y Thunderbird) enviaran peticiones de actualización a addons.mozilla.org usando servicio web predeterminado. Todo el tiempo que usted suba o publique una nueva versión de su complemento o le cambie los parámetros de compatibilidad mediante la interfaz de autor, su actualización del "Manifest" será generada automáticamente.

Formato de la actualización "Manifest": La actualización "Manifest" es un RDF/XML datasource (fuente de datos). Para ejemplos de un actualización manifest, vea Extensión Version, Actualización y Compatibilidad y Activación Extensión Actualización (externas).

[editar] optionsURL

La chrome:// URL del cuadro de dialogo de las opciones de la extensión. Esto es solo utilizable para extensiones. Si esta propiedad es especificada, cuando la extensión es seleccionada en la la lista de extensiones, los botones de opcion son habilitados y mostrarán esto.

Ejemplos

<em:optionsURL>chrome://miext/content/options.xul</em:optionsURL>

[editar] aboutURL

La chrome:// URL del cuadro de dialogo acerca de la extensión. Esto es solamente utilizable por las extensiones. Si esta propiedad esta especificada, cuando la extensión es seleccionada en la lista de extensiones , el enlace acerca de... el menú contextual mostrara este cuadro de dialogo, mas bien que por defecto.

Examples

<em:aboutURL>chrome://myext/content/about.xul</em:aboutURL>

[editar] iconURL

Una chrome:// URL de icono 32x32 para mostrar en la lista de complementos. Si esta propiedad no esta especificada, es usado un icono por defecto.

<em:iconURL>chrome://miext/skin/icon.png</em:iconURL>

Note: Para trabajar con el ejemplo de encima también tiene que añadir un skin package en linea con su archivo chrome.manifest. Ver Chrome Registration#skin. Alternativamente usted puede colocar su icono en el directorio especificado en su linea content package.

[editar] hidden

Esta propiedad tiene un valor booleano que cuando es true hace que el complemento no se muestre en la lista de complementos, provee al complemento de Acceso de área restringida (entonces no trabaja como un complemento instalado en el perfil). Esto es para la integración de grandes aplicaciones donde no tiene sentido tener una lista de aplicaciones.

Ejemplos

<em:hidden>true</em:hidden>

[editar] targetPlatform

Es una cadena que especifica la plataforma que el complemento soporta. Contiene cualquier valor de OS_TARGET solo o combinado con TARGET_XPCOM_ABI, separado por un guión-bajo (_).

OS_TARGET es típicamente la salida del comando 'uname -s' en la plataforma objetivo, e.g.:

  • WINNT para Windows NT, 2000, XP y superiores
  • Linux para todas las versiones de Linux
  • Darwin para todas la versiones de MacOS X
  • SunOS para todas las versiones de Solaris

Usted puede especificar múltiples propiedades targetPlatform por manifest. Si cualquier valor concuerda con los parámetros de compilación de la aplicación, será instalado; si no, el usuario verá un error apropiado para tal caso.

Ejemplos

<em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>

<em:targetPlatform>Linux</em:targetPlatform>

<em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>

<em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>

Usualmente, usted podría usar solamente la parte de OS para temas o para extensiones que no sean completas para multi-plataforma. Para extensiones incluyendo componentes binarias (compiladas), usted no debería mostrar el uso de un OS solamente, pero incluir el ABI (s) que usted utilizó para compilar el componente. Si usted incluye múltiples versiones de los componentes, debería usar Platform-specific Subdirectories.

Notas

  • En el mismo archivo manifest, usted podría incluso mezclar valores con y sin ABI. Si un valor para la aplicacion del OS se encuentra que requiere cualquier especifico ABI, el ABI es considerado importante para que el OS y la aplicación rechace la instalación del complemento en caso tal que la combinación OS/ABI no sea la buscada,. Esto significa que si todo el ejemplo de arriba ocurriera en un manifest, el complemento se instalará en cualquier Linux de la aplicación compilada, sin importar su ABI, pero no en una estructura Windows Cygwin.
  • Puede haber muchas compilaciones de Firefox y Thunderbird que no "saben" su ABI (mas como puertos para raras plataformas, o compilaciones no oficiales). Estas estructuras rechazaran la instalación de cualquier complemento que requiera una plataforma ABI especifica para si.

Firefox 1.5 Esta propiedad fue añadida para Firefox/Thunderbird 1.5. Las versiones previas de estas aplicaciones ignorarán las restricciones y se instalarán los complementos sin importar la plataforma.

[editar] Referencia de Propiedades Obsoletas

Estas propiedades son requeridas en viejas versiones del administrador de complementos, pero han sido reemplazadas por nuevos y mejores mecanismos.

[editar] file

Firefox 1.0 Esta propiedad apunta un archivo chrome .jar que contiene paquetes chrome que requieren registrarse con el registro de chrome.

La propiedad <em:file> tiene un complejo valor de objeto. El uri(Uniform Resource Identifier - Identificador Uniforme de Recurso) de el valor es urn:mozilla:extension:file:jarFile.jar donde jarFile.jar es el nombre del archivo jar que contiene el paquete de archivos de chrome. Este podría ser también el nombre del directorio que contiene los archivos del paquete chrome, des-jareado (e.g. urn:mozilla:extension:file:directory).

Este objeto tiene una propiedad package (con una ruta dentro del archivo jar o del directorio que lidera la ubicación donde los archivos contents.rdf que son responsables del registro donde ese paquete esta localizado), una propiedad locale (ídem, pero registra el local) y una propiedad skin (ídem, pero para registrar el tema material).

En las extensiones para Firefox 1.5, esta propiedad ya no es necesaria: el chrome.manifest en el encabezado del XPI es usado para ubicar a chrome para registrar. Si no hay chrome.manifest, esa propiedad es aun leída por el administrador de complementos y un chrome.manifest es generado desde el viejo-estilo de contents.rdf.

Ejemplos

<em:file>
 <Description about="urn:mozilla:extension:file:myext.jar">
  <em:package>content/myext/</em:package>
  <em:locale>locale/en-US/myext/</em:locale>
  <em:skin>skin/classic/myext/<em:skin>
 </Description>
</em:file>

Un instalador Manifest puede especificar múltiples propiedades file, una para cada archivo jar o subdirectorio que contenga el chrome a registrar.

[editar] Glosario

[editar] Acceso de área restringida

Un Acceso de área restringida es una ubicación de la instalación que puede ser restringida en una cuenta de acceso-restringido, sin importar si la ubicación es o no restringida por los privilegios del usuario actual. (ver nsIInstallLocation::restricted). Actualmente, el directorio de las ($APPDIR)/extensions y la ubicación del registro de instalación que están bajo HKEY_LOCAL_MACHINE (ver Adding Extensions using the Windows Registry para mas detalles) son restringidas.

Las ubicaciones de instalación ($PROFILE)/extensions y HKEY_CURRENT_USER, del otro lado, no estan restringidas.