Ce document décrit comment sont packagés les thèmes pour Firefox et Thunderbird.
Préalables
Construire un thème pour Firefox ou Thunderbird requiert quelques connaissances des feuilles de style en cascade (CSS), probablement de XBL, et quelques notions de design graphique et d'esthétisme (...ou peut-être pas). Ce document décrit seulement comment les thèmes sont packagés afin d'être affichés dans la fenêtre des thèmes de l'application.
Arborescence des fichiers d'un thème
Les thèmes Firefox/Thunderbird sont packagés dans un fichier JAR avec la structure arborescente suivante :
montheme.jar : install.rdf contents.rdf preview.png icon.png browser/fichiers global/fichiers mozapps/fichiers communicator/fichiers ...
- Vous devez avoir à la racine un fichier chrome.manifest (Firefox/Thunderbird 1.5) ou un fichier contents.rdf qui référence le chrome pour le thème (comme avant) et aussi un manifest install.rdf qui spécifit les meta-données affichées dans la fenêtre de gestion des thèmes.
- preview.png est une image d'aperçu qui sera afficher dans la zone d'aperçu de la fenêtre de gestion des thèmes. Cette image peut avoir n'importe qu'elle taille a priori.
- icon.png est un PNG de 32x32 (qui peut contenir un canal alpha de transparence) qui sera également visible dans la liste des thèmes de la fenêtre de gestion des thèmes.
install.rdf
Votre fichier manifest install.rdf devrait ressembler à cela :
<?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>more properties </Description> </RDF>
Les propriétés requises dans install.rdf
Votre manifest install.rdf doit contenir les propriétés suivantes. Consultez la référence install.rdf pour plus d'informations :
- em:id
- em:version
- em:type
- em:targetApplication
- em:name
- em:internalName
Les propriétés optionnelles d'install.rdf
- em:description
- em:creator
- em:contributor
- em:homepageURL
- em:updateURL
Il est à noter que si votre thème est disponible sur le site Web officiel https://addons.mozilla.org, il ne devra pas inclure de propriété updateURL
.
Exemple de fichier manifest install.rdf
<?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> <!-- Target Application this extension can install into, with minimum and maximum supported versions. --> <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>
Ce qui suit sont les GUID habituels des applications que vous devez utiliser dans la propriété targetApplication
:
Firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384} Thunderbird {3550f703-e582-4d05-9a08-453d09bdfdc6} Sunbird {718e30fb-e89b-41dd-9da7-e25a45638b28}
Référence officielle de l'API du toolkit
Official References. Do not add to this list without contacting Benjamin Smedberg. Note that this page is included from the pages listed below. NdT : cette page doit rester en phase avec sa jumelle anglaise Toolkit API:Official References
- Structure d'un paquet installable : description de la structure commune des paquets installables, comme les extensions, les thèmes et les applications XULRunner
- Empaqueter une extension : informations spécifiques sur l'empaquetage d'extensions
- Empaqueter un thème : informations spécifiques sur l'empaquetage de thèmes
- Paquetage multi extensions : informations spécifiques sur les XPI d'extension comprenant plusieurs items d'extensions
- Empaqueter une application XUL : informations spécifiques sur l'empaquetage d'applications XULRunner
- Enregistrement chrome