Theme Packaging
From MDC
This document describes how to package themes for Firefox and Thunderbird.
目录 |
[编辑] Pre-requisites
Making a theme for Firefox or Thunderbird requires knowledge of Cascading Stylesheets (CSS), probably XBL, and some graphic design and aesthetic skill (...or maybe not). This document describes only how Themes are packaged in order to be shown in Firefox's Themes window.
[编辑] Theme File Layout
Firefox/Thunderbird themes are packaged in a JAR file with the following structure:
theme.jar:
install.rdf
contents.rdf
preview.png
icon.png
browser/files
global/files
mozapps/files
communicator/files
...
- You must have a top-level chrome.manifest (Firefox/Thunderbird 1.5) or contents.rdf file which registers the chrome for the theme (as before) and also an install.rdf manifest that specifies metadata that is displayed in the Themes window.
- preview.png is a preview image which will show in the scrolling preview area in the Themes window. It can be any size.
- icon.png is a 32x32 PNG (may contain alpha transparency) which will show up in the Themes list in the Themes window.
[编辑] install.rdf
Your install.rdf manifest will look something like this:
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:type>4</em:type>
more properties
</Description>
</RDF>
[编辑] Required install.rdf Properties
Your install.rdf file must have the following properties. See the install.rdf Reference for more information:
- em:id
- em:version
- em:type
- em:targetApplication
- em:name
- em:internalName
[编辑] Optional install.rdf Properties
- em:description
- em:creator
- em:contributor
- em:homepageURL
- em:updateURL
Note that if your theme will be made available on the http://addons.mozilla.org website, it should not include an updateURL.
[编辑] Sample install.rdf File
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://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>http://www.bengoodger.com/</em:homepageURL>
<!-- Front End Integration Hooks (used by Theme Manager)-->
<em:internalName>newtheme1</em:internalName>
</Description>
</RDF>
The following are some common target application GUIDs that you can use in your targetApplication properties:
Firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Thunderbird {3550f703-e582-4d05-9a08-453d09bdfdc6}
Sunbird {718e30fb-e89b-41dd-9da7-e25a45638b28}
[编辑] Official References for 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