Este documento describe cómo empaquetar temas para Firefox y Thunderbird.
Pre-requisitos
Hacer un tema para Firefox o Thunderbird requiere conocimientos de hojas de estilo en cascada (CSS), probablemente XBL, y un poco de habilidad para diseño gráfico y estética (...o quizá no). Este documento describe solamente cómo se empaquetan los temas para ser mostrados en la ventana de los temas de Firefox.
Estructura de los ficheros del tema
Los temas Firefox/Thunderbird son empaquetados en un archivo JAR con la siguiente estructura:
theme.jar: install.rdf contents.rdf preview.png icon.png browser/files global/files mozapps/files communicator/files ...
- Debe de existir un fichero chrome.manifest (Firefox/Thunderbird 1.5) o contents.rdf en el nivel superior para registrar el chrome para el tema (como antes) y también un fichero install.rdf que especifique los metadatos mostrados en la ventana de temas.
- preview.png es una imagen que se mostrarán en el área de previsualización de la ventana de temas. Puede tener cualquier tamaño.
- icon.png es una imagen png de tamaño 32 x 32 (puede contener transparencias) que será mostrada en la lista y en la ventana de temas.
install.rdf
El fichero install.rdf debe de tener este aspecto:
<?xml version="1.0"?> <RDF xmlns="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="https://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:type>4</em:type>otras propiedades </Description> </RDF>
Propiedades de install.rdf requeridas
El fichero install.rdf debe contener las siguientes propiedades. Véase Referencia install.rdf para más información:
- em:id
- em:version
- em:type
- em:targetApplication
- em:name
- em:internalName
Propiedades de install.rdf opcionales
- em:description
- em:creator
- em:contributor
- em:homepageURL
- em:updateURL
Nótese que si el tema va a ser publicado en el sitio web https://addons.mozilla.org, no debe incluir la parte updateURL.
Fichero install.rdf de ejemplo
<?xml version="1.0"?> <RDF xmlns="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="https://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>{18b64b56-d42f-428d-a88c-baa413bc413f}</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- Aplicación para la cual esta extensión puede ser instaladainto, indicando la mínima y máxima versión soportada. --> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>0.8</em:minVersion> <em:maxVersion>0.9</em:maxVersion> </Description> </em:targetApplication> <!-- Front End MetaData --> <em:name>New Theme 1</em:name> <em:description>A test theme for Firefox</em:description> <em:creator>Ben Goodger</em:creator> <em:contributor>John Doe</em:contributor> <em:homepageURL>https://www.bengoodger.com/</em:homepageURL> <!-- Front End Integration Hooks (used by Theme Manager)--> <em:internalName>newtheme1</em:internalName> </Description> </RDF>
Los siguientes son algunos GUIDs de aplicaciones comunes que puedes usar en la propiedad targetApplication:
Firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384} Thunderbird {3550f703-e582-4d05-9a08-453d09bdfdc6} Sunbird {718e30fb-e89b-41dd-9da7-e25a45638b28}
Referencia oficial para Toolkit API
Official References. Do not add to this list without contacting Benjamin Smedberg. Note that this page is included from the pages listed below. So: Don't Add Breadcrumbs!
- Structure of an Installable Bundle: describes the common structure of installable bundles, including extensions, themes, and XULRunner applications
- Extension Packaging: specific information about how to package extensions
- Theme Packaging: specific information about how to package themes
- Multiple-item Extension Packaging: specific information about multiple-item extension XPIs
- XUL Application Packaging: specific information about how to package XULRunner applications
- Chrome Registration