Estructura de un paquete de instalación

Hubo errores de script en esta página. Mientras los editores del sitio lo solucionan, puedes ver un contenido parcial debajo.

Las Aplicaciones XULRunner, extensiones, y temas comparten todos una estructura de directorios común, y en algunos casos el mismo paquete puede ser usado como una aplicación XULRunner independiente además de como una extensión instalable en otra aplicación. La estructura básica de un paquete (bundles) puede incluir cualquiera de los siguientes ficheros:

/install.rdf                        Manifiesto de instalación de tema/extensión
/application.ini                    Manifiesto de lanzamiento de la aplicación
/components/*                       Componentes y ficheros XPT       (>=1.7)
/defaults/preferences/*.js          Opciones por defecto             (>=1.7)
/plugins/*                          Plugins NPAPI                    (>=1.8)
/chrome.manifest                    Manifiesto de registro de Chrome (>=1.8)
/chrome/icons/default/*             Iconos de la ventana             (>=1.8)

Por supuesto, una extensión no necesita (y normalmente no tendrá) todos estos directorios. Los temas están limitados por razones de seguridad y normalmente no pueden proporcionar un chrome.manifest que registre un tema y un fichero JAR.


Subdirectorios específicos de una plataforma

En algunos casos una única extensión o aplicación puede necesitar incluir componentes binarios o plugins para múltiples plataformas, o los autores de temas pueden querer incluir varios ficheros JAR específicos a una plataforma. Para facilitar las cosas en el primer caso, el cargador de la extensión/aplicación tendrá unos subdirectorios especiales previstos específicamente para los ficheros concretos de una plataforma (a partir del Toolkit/Gecko 1.8, Firefox/Thunderbird 1.5). La cadena de texto de la plataforma es definida por el proceso de compilación del toolkit con un único valor para la combinación del sistema operativo, arquitectura del procesador y el compilador. El formato de la cadena de texto de la plataforma es:

{OS_TARGET}_{TARGET_XPCOM_ABI}

Todos los ficheros que son cargados desde el directorio principal de la extensión son cargados desde el subdirectorio

/platform/{cadena de texto de la plataforma}

si existe. Por ejemplo, si un vendedor de plugins que busque el dejarlo disponible para un usuario de ordenadores con Linux, Macintosh y Windows, este proporcionará los siguientes ficheros:

/platform/Linux_x86-gcc3/plugins/libMyPlugin.so
/platform/WINNT_x86-msvc/plugins/MyPlugin.dll
/platform/Darwin_ppc-gcc3/plugins/libMyPlugin.dylib

Dado que los ficheros XPT no dependen de la plataforma, cualquier fichero XPT asociado entraría en el directorio de componentes genérico:

/components/MyPlugin.xpt

Si una extensión tiene código específico a una plataforma no binaria (como el código que utiliza la base de registros de Windows desde un script), también puede utilizar el identificador del sistema operativo como subdirectorio de plataforma:

/platform/WINNT/components/registerDoctype.js

Cuando un fichero JAR específico a una plataforma es usado, cada directorio de plataforma debe tener su propio fichero chrome.manifest:

chrome.manifest
chrome/mytheme-base.jar
platform/Darwin/chrome.manifest
platform/Darwin/chrome/mytheme-mac.jar
platform/WINNT/chrome.manifest
platform/WINNT/chrome/mytheme-win.jar

El proceso de arranque analiza en primer lugar el directorio base, después los directorios de plataforma aplicables (en primer lugar /{OS_TARGET}/, a continuación /{OS_TARGET}_{TARGET_XPCOM_ABI}/). Cuando las preferencias por defecto se definen en varios directorios, los que se cargan al final tienen prioridad sobre los que se cargan antes.

Ficheros de extensión específicos a una aplicación

Además de los ficheros de extensión listados más arriba, las aplicaciones pueden leer ficheros suplementarios desde extensiones. Por ejemplo, Firefox 1.5 y superiores pueden leer los plugins de búsqueda de Sherlock desde /searchplugins/*.src Firefox 2 y superiores además pueden leer Plugins MozSearch y OpenSearch desde

/searchplugins/*.xml

y los diccionarios Myspell desde

/dictionaries/*.{aff|dic}

Referencias oficiales de Herramienta API

{{ :es/Herramienta_API/Referencias_oficiales }}

Etiquetas y colaboradores del documento

Etiquetas:
Colaboradores de esta página: StripTM, Nukeador, Mgjbot
Última actualización por: Mgjbot,