You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



Extension Manifest

Introduction

Extensions are packaged in XPI files with an extension manifest which contains metadata about the extension and information about dependencies (on other extensions and the target application(s)). This metadata is folded in to the application Extension Manager datasource when the extension is installed.

The content of the manifest is outlined in this document.

Manifest Contents

  <?xml version="1.0">

  <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:chrome="http://www.mozilla.org/rdf/chrome#">

    <Description about="extension:manifest">
      <chrome:id>@banditsoft.com/software/rssbandit</chrome:id>
      <chrome:version>1.0</chrome:version>
      
      <!-- Target Application this extension can install into, 
          with minimum and maximum supported versions. Minimum is inted
      <chrome:targetApplication>
        <Description about="urn:mozilla:@mozilla.org/products/firefox">
          <chrome:minVersion>0.7</chrome:minVersion>
          <chrome:maxVersion>1.2</chrome:maxVersion>
        </Description>          
      </chrome:targetApplication>
      
      <chrome:targetApplication>
        <Description about="urn:mozilla:@mozilla.org/products/thunderbird">
          <chrome:minVersion>0.4</chrome:minVersion>
          <chrome:maxVersion>0.5</chrome:maxVersion>
        </Description>          
      </chrome:targetApplication>

      <chrome:requires>
        <Description about="urn:mozilla:@mozdev.org/jslib">
          <chrome:minVersion>1.0</chrome:minVersion>
          <chrome:maxVersion>1.1</chrome:maxVersion>
        </Description>          
      </chrome:requires>

      <chrome:requires>
        <Description about="urn:mozilla:@banditsoft.com/software/rdfutils">
          <chrome:minVersion>2.5</chrome:minVersion>
          <chrome:maxVersion>2.9</chrome:maxVersion>
        </Description>          
      </chrome:requires>

      <!-- Front End MetaData -->
      <chrome:name>RSSBandit 4.0</chrome:name>
      <chrome:description>An integrated RSS reader for Firefox and Thunderbird</chrome:name>
      <chrome:creator>BanditSoft, Inc.</chrome:creator>
      <chrome:contributor>John Doe</chrome:contributor>
      <chrome:contributor>Jane Doe</chrome:contributor>
      <chrome:homepageURL>http://www.banditsoft.com/rssbandit/</chrome:homepageURL>

      <!-- Update Info -->
      <chrome:updateURL>http://www.banditsoft.com/rssbandit/update.rdf</chrome:updateURL>
      
      <!-- Front End Integration Hooks (used by Extension Manager)-->
      <chrome:optionsURL>chrome://rssbandit/content/options.xul</chrome:optionsURL>
      <chrome:aboutURL>chrome://rssbandit/content/about.xul</chrome:aboutURL>
      <chrome:iconURL>chrome://rssbandit/content/rssbandit.png</chrome:iconURL>
      
      <!-- Packages, Skins and Locales that this extension registers -->
      <chrome:file>
        <Description about="urn:mozilla:extensions/<uniquifier>/foo.jar">
          <chrome:package>content/rssbandit/</chrome:package>
          <chrome:locale>locale/en-US/rssbandit/</chrome:locale>
          <chrome:skin>locale/classic/rssbandit/</chrome:skin>
        </Description>
      </chrome:file>
    </Description>      
  </RDF>
      
    

Extension Manager DataSource Grammar

The Extension Manager maintains a datasource of installed extensions. This datasource is used to handle installation, uninstallation, disabling and enabling, automated update, etc. As an extension is installed, the data from the manifest is folded into the datasource. See extension installation for more information.

In addition to the metadata from the manifests, there is some additional book- keeping metadata stored with each extension entry in the datasource. This includes:

  • chrome:toBeDisabled - boolean - indicates that an extension should be disabled on the next startup.
  • chrome:toBeEnabled - boolean - indicates that an extension should be enabled on the next startup.
  • chrome:toBeUninstalled - boolean - indicates that an extension should be uninstalled on the next startup.