Poniższy artykuł opisuje operację pakowania motywów dla Firefoksa oraz Thunderbirda.
Założenia
Tworzenie motywów dla Firefoksa lub Thunderbirda wymaga znajomości Cascading Stylesheets (CSS), prawdopodobnie XBL oraz projektowania grafiki i wyczucia estetyki (...lub też nie). Poniższy artykuł opisuje jedynie jak pakowane są motywy, aby pokazać je w oknie Motywów Firefoksa.
Struktura plików motywu
Motywy Firefoksa/Thunderbirda pakowane są do plików JAR o następującej strukturze:
motyw.jar: install.rdf contents.rdf preview.png icon.png browser/files global/files mozapps/files communicator/files ...
- Na najwyższym poziomie musi się znajdować plik chrome.manifest (Firefoks/Thunderbird 1.5) lub contents.rdf rejestrujący chrom dla motywu (jak poprzednio) oraz manifest install.rdf określający informacje wyświetlane w oknie Motywy.
- preview.png jest obrazkiem podglądu pokazywanym podczas przeglądania okna Motywy. Może posiadać dowolny rozmiar.
- icon.png jest ikoną o rozmiarze 32x32 w formacie PNG (może posiadać przeźroczystość alpha) pokazywaną w liście motywów w oknie Motywy.
install.rdf
Twój manifest install.rdf będzie wyglądał podobnie do poniższego:
<?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>
Wymagane własności install.rdf
Plik install.rdf musi posiadać następujące własności. By dowiedzieć się więcej zobacz install.rdf:
- em:id
- em:version
- em:type
- em:targetApplication
- em:name
- em:internalName
Opcjonalne własności install.rdf
- em:description
- em:creator
- em:contributor
- em:homepageURL
- em:updateURL
Uwaga: jeśli twój motyw będzie dostępny na stronie https://addons.mozilla.org nie powinien on zawierać własności updateURL.
Przykładowy plik 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>
Poniższe GUID przykładowych aplikacji docelowych można użyć w swoich własnościach targetApplication:
Firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384} Thunderbird {3550f703-e582-4d05-9a08-453d09bdfdc6} Sunbird {718e30fb-e89b-41dd-9da7-e25a45638b28}
Oficjalne dokumentacje dla Toolkit API
- 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