Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Estructura de un paquete de instalación

 

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.rdfManifiesto de instalación de tema/extensión
/application.iniManifiesto de lanzamiento de la aplicación
/components/*Componentes y ficheros XPT       (>=1.7)
/defaults/preferences/*.jsOpciones por defecto             (>=1.7)
/plugins/*Plugins NPAPI                    (>=1.8)
/chrome.manifestManifiesto 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

Etiquetas y colaboradores del documento

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