Install Manifests

  • Revision slug: Install_Manifests
  • Revision title: Install Manifests
  • Revision id: 8879
  • Created:
  • Creator: Bye
  • Is current revision? No
  • Comment /* Glossary */

Revision Content

Introduction

An Install Manifest is the file an Addon Manager-enabled XUL application uses to determine information about an addon as it is being installed. It contains metadata identifying the addon, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.

The format of the Install Manifest is RDF/XML.

The file must be called install.rdf and live at the top level of an addon's XPI file.

Layout

The basic layout of an Install Manifest is like so:

<?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">
    <!-- properties -->
  </Description>
</RDF>

Some properties are required, some are optional. Some have simple string values, some are complex resources.

Required Property Reference

Your Install Manifest must specify these properties correctly otherwise your addon may not install.

id

The id of the extension, which is a:

  • GUID (generate using guidgen on Windows, uuidgen on Linux and makeuuid on Solaris) (Firefox 1.0)
  • {{template.Fx_minversion_inline(1.5)}} A string formatted like so: extensionname@organization.tld

The latter format is significantly easier to generate and manipulate. Firefox 1.5 has checking to ensure that your id falls into one format or the other and will refuse to install addons that have malformed ids.

Examples

<em:id>myextension@mysite.com</em:id>

<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>

version

A version string identifying the version of the addon being supplied.

For Firefox/Thundebird 1.0, the format must conform to the rules specified in Extension Versioning, Update and Compatibility. For Firefox/Thundebird 1.5, see Toolkit version format.

Examples

<em:version>2.0</em:version>

<em:version>1.0.2</em:version>

<em:version>0.4.1.2005090112</em:version>

Firefox 1.5 / XULRunner 1.8 - addons that do not use a valid version format will not be installed. The version format is different from, although backwards-compatible with, 1.0's.

For addons hosted on addons.mozilla.org - Mozilla's update website may repackage your addon and correct or reject malformed version strings.

type

An integer value representing the type of addon.

2Extensions
4Themes
8Locale
32Multiple Item Package

Examples

<em:type>2</em:type>

{{template.Fx_minversion_inline(1.5)}} This property was added for Firefox 1.5, and is only required for addon types other than Extensions and Themes.

{{template.Fx_minversion_inline(3)}} Firefox 2 and previous supported a value of 16 to represent plugins. In Firefox 3 this has been removed.

targetApplication

An object specifying an application targeted by this addon. This means that the addon will work with the application identified by the id property (<em:id>) specified (for a comprehensive list of application IDs see Valid application versions for add-on developers), from the minimum version (<em:minVersion>) up to and including the maximum version (<em:maxVersion>). These version strings are formatted in the same fashion as the version property and will be compared to the application version; this allows the extension author to specify which versions of Firefox an extension has been tested with.

Note: Firefox 1.0-1.0.6 all have an application version of 1.0. Security and stability updates of Firefox 1.5 have application version 1.5.0.1, 1.5.0.2, etc. Extensions compatible with Firefox or Thunderbird 1.5 should specify a maxVersion of 1.5.0.*, so that they are automatically compatible with security and stability updates.

Extensions compatible with Firefox 2 should specify a maxVersion of 2.0.0.*

The Install Manifest must specify at least one of these objects, and may specify more if the addon targets multiple applications that support the Addon Manager (e.g. Firefox and Thunderbird)

Examples

<em:targetApplication>
 <Description>
  <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> Firefox
  <em:minVersion>1.5</em:minVersion>
  <em:maxVersion>2.0.0.*</em:maxVersion>
 </Description>
</em:targetApplication>

{{template.Fx_minversion_inline(3)}} Gecko 1.9 based applications allow you to use the special targetApplication id toolkit@mozilla.org to say that the add-on is compatible with any toolkit app with a toolkit version matching the minVersion and maxVersion.

name

The name of the addon- intended for display in the UI.

Examples

<em:name>My Extension</em:name>

Optional Property Reference

You may need to supply these properties, depending on the capabilities of your add-on.

localized

{{template.Fx_minversion_inline(3)}} Allows you to localize the add-on's name, description, contributors and other metadata. The localized description must specify at least one em:locale which indicates which locales to use this information for.

Examples

This declares a set of add-on metadata to be displayed when the application is running in the de-DE locale.

<em:localized>
  <Description>
    <em:locale>de-DE</em:locale>
    <em:name>Tab Sidebar</em:name>
    <em:description>Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.</em:description>
  </Description>
</em:localized>

The following properties which are described elsewhere in this page can be included in the localized property:

  • name
  • description
  • creator
  • homepageURL
  • developer
  • translator
  • contributor

More documentation can be found at Localizing extension descriptions.

description

A short description of the add-on - intended for display in the user interface. This description should fit on one short line of text.

Examples

<em:description>Advanced foo tools.</em:description>

creator

The name of the creator/principal developer - intended for display in the user interface.

Examples

<em:creator>John Doe</em:creator>

or

<em:creator>CoolExtension Team</em:creator>

developer

{{template.Fx_minversion_inline(2)}} The name(s) of co-developers. You may specify more than one of this value to specify multiple developers.

Examples

<em:developer>Krunal</em:developer>
<em:developer>Billimoria</em:developer>

translator

{{template.Fx_minversion_inline(2)}} The name(s) of translators. You may specify more than one of this value to specify multiple translators.

Examples

<em:translator>Janez Novak</em:translator>
<em:translator>Kari Nordmann</em:translator>

contributor

The name(s) of additional contributors. You may specify more than one of this value to specify multiple contributors.

Examples

<em:contributor>John Doe</em:contributor>

<em:contributor>John Doe</em:contributor>
<em:contributor>Jane Doe</em:contributor>
<em:contributor>Elvis Presley</em:contributor>

homepageURL

A link to the addon's home page - intended for display in the user interface.

Examples

<em:homepageURL>http://www.foo.com/</em:homepageURL>

updateURL

A link to a custom Update Manifest file that specifies available updates to the addon. The format is described below. If enabled, the addon manager periodically checks with this Manifest file to determine if newer versions are available.

Warning: It is strongly recommended that the updateURL be an HTTPS (secure) link. Non-secure update URLs can be hijacked by a malicious update.rdf file, enabling malware to infiltrate the user's computer. Alternatively, you could host your extension on AMO and leave out the updateURL completely. This provides secure updates automatically.

{{template.Fx_minversion_inline(3)}} Gecko 1.9 applications require that if you specify an updateURL it must be a https url, or you must include an updateKey for security reasons.

Your server must send this file as text/rdf or the update checker will not work. text/xml also seems to work (projects on mozdev.org)

The addon manager will substitute the following values into this URL in case you wish to generate the response RDF dynamically, such as using PHP or CGI:

%REQ_VERSION%The version of the request. Currently 1
%ITEM_ID%The id of the addon being updated
%ITEM_VERSION%The version of the addon being updated
%ITEM_MAXAPPVERSION%The maxVersion of the targetApplication object corresponding to the current application for the addon being updated.
%ITEM_STATUS%{{template.Fx_minversion_inline(2)}} Comma separated list of the add-ons operating status in the application. Contains at the least either userEnabled or userDisabled plus any number of incompatible, blockslisted or needsDependencies.
%APP_ID%The id of the current application
%APP_VERSION%The version of the current application
%APP_OS%{{template.Fx_minversion_inline(1.5)}} The value of OS_TARGET from the Firefox build system, identifying the operating system being used.
%APP_ABI%{{template.Fx_minversion_inline(1.5)}} The value of the TARGET_XPCOM_ABI value from the Firefox build system, identifying the compiler/architecture combination used to compile the current application.

Examples

<em:updateURL>http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;version=%ITEM_VERSION%</em:updateURL>
<em:updateURL>http://www.foo.com/extension/windows.rdf</em:updateURL>

For addons hosted on addons.mozilla.org: You may not specify an updateURL property. By default, Mozilla applications using the Addon Manager (such as Firefox and Thunderbird) will send update requests to addons.mozilla.org using the default web service. Every time you upload a new version of your addon or change its compatibility parameters through the author interface, your update manifest will be generated automatically.

Format of the Update Manifest: The Update Manifest is a RDF/XML datasource. For examples of an update manifest, see Extension Versioning, Update and Compatibility and Enabling Extension Updates (external).

updateKey

{{template.Gecko_minversion_header(1.9)}} {{template.Fx_minversion_header(3)}}

To ensure the security of update rdf data that is retrieved over plain http you must use a digital signature to verify the contents of the data. In order to do so you must include the public part of the cryptographic key in an updateKey entry in the install.rdf of the add-on. This can be generated using the McCoy tool. Any line breaks and whitespace as part of this entry are ignored.

Examples

 <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj
               Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD
               NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J63wBixIeCxmysf
               awB/zH4KaPiY3vnrzQIDAQAB</em:updateKey>

optionsURL

The chrome:// URL of the extension's options dialog box. This is not useful to extensions. i repeat, This is not useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the Options button is enabled and will show this.

Examples

<em:optionsURL>chrome://myext/content/options.xul</em:optionsURL>

aboutURL

The chrome:// URL of the extension's about dialog box. This is only useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the About... link in the extension's context menu will show this dialog, rather than the default.

Examples

<em:aboutURL>chrome://myext/content/about.xul</em:aboutURL>

iconURL

A chrome:// URL to a 32x32 icon to display in the addons list. If this property is not specified, a default icon is used.

<em:iconURL>chrome://myext/skin/icon.png</em:iconURL>

Note: For the above example to work you will also have to add a skin package line to your chrome.manifest file. See Chrome Registration#skin. Alternatively you can place your icon in the directory specified in your content package line.

hidden

A boolean value that when true makes the add-on not show up in the add-ons list, provided the add-on is installed in a {{template.Anch("restricted access area")}} (so it does not work for add-ons installed in the profile). This is for bundling integration hooks to larger applications where having an entry in the Extensions list does not make sense.

Examples

<em:hidden>true</em:hidden>

targetPlatform

{{template.Fx_minversion_inline(1.5)}} A string specifying a platform that the addon supports. It contains either the value of OS_TARGET alone or combined with TARGET_XPCOM_ABI, separated by an underscore (_).

OS_TARGET is typically the output of the 'uname -s' command on the target platform, e.g.:

  • WINNT for Windows NT, 2000, XP and later
  • Linux for all Linux versions
  • Darwin for all MacOS X versions
  • SunOS for all Solaris versions

You can specify multiple targetPlatform properties per manifest. If any value matches the application's build parameters, it will be installed; if not, the user will get an appropriate error message.

Examples

<em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>

<em:targetPlatform>Linux</em:targetPlatform>

<em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>

<em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>

Usually, you would use only the OS part for themes or for extensions that are not fully cross-platform. For extensions including binary (compiled) components, you should never use the OS alone, but include the ABI (s) that you compiled the components with. If you want to include multiple versions of the components, you should also use Platform-specific Subdirectories.

Notes

  • In the same manifest file, you could even mix values with and without ABI. If a value for the application's OS is encountered that requires any specific ABI, the ABI is considered important for that OS and the application will refuse to install the addon if it does not find a matching OS/ABI combination. This means that if all of the above examples would occur in one manifest, the addon will install on any Linux build of the application, regardless of its ABI, but not on a Windows Cygwin build.
  • There may be builds of Firefox and Thunderbird which do not "know" their ABI (most likely ports to rare platforms, or non-official builds). These builds will refuse to install any addon that requires a specific ABI for their platform.

This property was added for Firefox/Thunderbird 1.5. Previous versions of these applications will ignore the restrictions and install the addon regardless of the platform.

requires

{{template.Fx_minversion_inline(2)}} This tag has a similar syntax to the <em:targetApplication> tag. If the addon specified by the <em:id> tag is not installed or has an incompatible version, the extension manager will disable your extension and show the message "Requires additional items". You can add as many <em:requires> tags as you like. Your extension will be disabled if any of the specified requirements fail.

Example

<em:requires>
   <Description>
     <!-- Lightning -->
     <em:id>{e2fda1a4-762b-4020-b5ad-a41df1933103}</em:id>
     <em:minVersion>0.5pre</em:minVersion>
     <em:maxVersion>0.5pre</em:maxVersion>
   </Description>
 </em:requires>

Notes

  • Currently, only <em:id>, <em:minVersion>, <em:maxVersion> are parsed inside the <em:requires> tag.
  • It is not currently possible to add dependencies that are specific to a <em:targetApplication>. See {{mediawiki.interwiki('wikimo', 'Extension_Manager:Extension_Dependencies', 'wikimo:Extension Manager:Extension Dependencies')}} for more details.

This property was added for Firefox/Thunderbird 2. Previous versions of these applications will ignore the restrictions and install the addon regardless of the requirements.

Obsolete Property Reference

These properties were required in older versions of the Addon Manager, but have been replaced with newer and better mechanisms.

file

Firefox 1.0 This property pointed to a chrome .jar file that contains chrome packages that require registration with the Chrome Registry.

The <em:file> property has a complex object value. The uri of the value is urn:mozilla:extension:file:jarFile.jar where jarFile.jar is the name of the jar file that contains the chrome package's files. This could also be the name of a directory that contains the chrome package's files, un-jarred (e.g. urn:mozilla:extension:file:directory). In either case, the referenced chrome package file(s) must be placed in the chrome subdirectory of the XPI's top level.

This object has a package property (with a path within the jar file or directory that leads to the location where the contents.rdf file responsible for registering that package is located), a locale property (ditto, but to register the locale) and a skin property (ditto, but to register the theme material).

In extensions for Firefox 1.5, this property is no longer necessary: the chrome.manifest at the top level of the XPI is used to locate chrome to register. If there is no chrome.manifest, this property is still read by the Addon Manager and a chrome.manifest is generated from old-style contents.rdf.

Examples

<em:file>
 <Description about="urn:mozilla:extension:file:myext.jar">
  <em:package>content/myext/</em:package>
  <em:locale>locale/en-US/myext/</em:locale>
  <em:skin>skin/classic/myext/<em:skin>
 </Description>
</em:file>

An Install Manifest may specify multiple file properties, one for each jar file or subdirectory that contains chrome to register.

Glossary

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">

 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta http-equiv="Content-Language" content="en" />
   <meta name="keywords" content="Install Manifests,Firefox 1.5 for developers,Firefox 3 for developers,Firefox 2 for developers,Adding Extensions using the Windows Registry,Bundles,Chrome Registration,Enabling Extension Updates (external),Extension Versioning, Update and Compatibility,Localizing extension descriptions,McCoy" />

<link title="RDF Metadata" type="application/rdf+xml" href="/en/docs/index.php?title=Special:Rdf&target=Install_Manifests" rel="meta" /> <link rel="shortcut icon" href="/favicon.ico" /> <link rel="search" type="application/opensearchdescription+xml" href="/en/docs/opensearch_desc.php" title="MDC (English)" /> <link rel="copyright" href="/en/docs/MDC:Copyrights" />

   <title>Install Manifests - MDC</title>

<link rel="alternate" type="application/rss+xml" title="MDC Webwatch" href="http://developer.mozilla.org/webwatch/?feed=rss" /> <link rel="alternate" type="application/rss+xml" title="MDC DevNews" href="http://developer.mozilla.org/devnews/?feed=rss" /> <link rel="alternate" type="application/rss+xml" title="Recent Changes (en)" href="http://developer.mozilla.org/en/docs/index.php?title=Special:Recentchanges&feed=rss" /> <link rel="alternate" type="application/rss+xml" title="New Pages (en)" href="http://developer.mozilla.org/en/docs/index.php?title=Special:Newpages&feed=rss" /> <link rel="stylesheet" type="text/css" media="all" href="/css/base.css" /> <link rel="stylesheet" type="text/css" media="all" href="/css/wiki.css" /> <link rel="stylesheet" type="text/css" media="print" href="/css/wikiprint.css" /> {{mediawiki.external('if gte IE 6')}}><style type="text/css">@import "/en/docs/skins/devmo/IE60Fixes.css";</style><!{{mediawiki.external('endif')}} {{mediawiki.external('if IE')}}><script type="text/javascript" src="/en/docs/skins/common/IEFixes.js"></script> <meta http-equiv="imagetoolbar" content="no" /><!{endif]

   <script type= "text/javascript">/*<![CDATA[*/

var skin = "devmo"; var stylepath = "/en/docs/skins"; var wgArticlePath = "/en/docs/$1"; var wgScriptPath = "/en/docs"; var wgServer = "http://developer.mozilla.org"; var wgCanonicalNamespace = ""; var wgCanonicalSpecialPageName = false; var wgNamespaceNumber = 0; var wgPageName = "Install_Manifests"; var wgTitle = "Install Manifests"; var wgArticleId = "3655"; var wgIsArticle = true; var wgUserName = "Bye"; var wgUserLanguage = "en"; var wgContentLanguage = "en"; var wgBreakFrames = false; var wgCurRevisionId = "57781"; /*]]>*/</script>

   <script type="text/javascript" src="/en/docs/index.php?title=-&action=raw&smaxage=0&gen=js"></script>    <script type="text/javascript" src="/en/docs/skins/common/wikibits.js"></script>
   <script type="text/javascript" src="/en/docs/skins/devmo/devmo.js"></script>
   <script type="text/javascript" src="/en/docs/skins/devmo/prototype.js"></script>
   <script type="text/javascript" src="/en/docs/skins/devmo/scriptaculous.js"></script>
   <style type="text/css">/*<![CDATA[*/

@import "/en/docs/index.php?title=MediaWiki:Common.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; @import "/en/docs/index.php?title=MediaWiki:Devmo.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; @import "/en/docs/index.php?title=-&action=raw&gen=css&maxage=18000&smaxage=0"; /*]]>*/</style> </head>

 <body                 class="ns-0"		id="developer-mozilla-org">


<a href="http://www.mozilla.org/">Visit Mozilla.org</a>



END SIDEBAR

<a name="top" id="contentTop"></a>

Install Manifests

From MDC


Contents

  • <a href="#Introduction">1 Introduction</a>
  • <a href="#Layout">2 Layout</a>
  • <a href="#Required_Property_Reference">3 Required Property Reference</a>
    • <a href="#id">3.1 id</a>
    • <a href="#version">3.2 version</a>
    • <a href="#type">3.3 type</a>
    • <a href="#targetApplication">3.4 targetApplication</a>
    • <a href="#name">3.5 name</a>
  • <a href="#Optional_Property_Reference">4 Optional Property Reference</a>
    • <a href="#localized">4.1 localized</a>
    • <a href="#description">4.2 description</a>
    • <a href="#creator">4.3 creator</a>
    • <a href="#developer">4.4 developer</a>
    • <a href="#translator">4.5 translator</a>
    • <a href="#contributor">4.6 contributor</a>
    • <a href="#homepageURL">4.7 homepageURL</a>
    • <a href="#updateURL">4.8 updateURL</a>
    • <a href="#updateKey">4.9 updateKey</a>
    • <a href="#optionsURL">4.10 optionsURL</a>
    • <a href="#aboutURL">4.11 aboutURL</a>
    • <a href="#iconURL">4.12 iconURL</a>
    • <a href="#hidden">4.13 hidden</a>
    • <a href="#targetPlatform">4.14 targetPlatform</a>
    • <a href="#requires">4.15 requires</a>
  • <a href="#Obsolete_Property_Reference">5 Obsolete Property Reference</a>
    • <a href="#file">5.1 file</a>
  • <a href="#Glossary">6 Glossary</a>
  • <a href="#restricted_access_area">7 restricted access area</a>
<script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script> <a name="Introduction"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=1" title="Edit section: Introduction">edit</a>] Introduction

An Install Manifest is the file an Addon Manager-enabled XUL application uses to determine information about an addon as it is being installed. It contains metadata identifying the addon, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.

The format of the Install Manifest is RDF/XML.

The file must be called install.rdf and live at the top level of an addon's XPI file.

<a name="Layout"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=2" title="Edit section: Layout">edit</a>] Layout

The basic layout of an Install Manifest is like so:

<?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">

    <!-- properties -->
  </Description>
</RDF>

Some properties are required, some are optional. Some have simple string values, some are complex resources.

<a name="Required_Property_Reference"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=3" title="Edit section: Required Property Reference">edit</a>] Required Property Reference

Your Install Manifest must specify these properties correctly otherwise your addon may not install.

<a name="id"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=4" title="Edit section: id">edit</a>] id

The id of the extension, which is a:

  • GUID (generate using guidgen on Windows, uuidgen on Linux and makeuuid on Solaris) (Firefox 1.0)
  • New in <a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers">Firefox 1.5</a> A string formatted like so: extensionname@organization.tld

The latter format is significantly easier to generate and manipulate. Firefox 1.5 has checking to ensure that your id falls into one format or the other and will refuse to install addons that have malformed ids.

Examples

<em:id>myextension@mysite.com</em:id>

<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>
<a name="version"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=5" title="Edit section: version">edit</a>] version

A version string identifying the version of the addon being supplied.

For Firefox/Thundebird 1.0, the format must conform to the rules specified in <a href="/en/docs/Extension_Versioning%2C_Update_and_Compatibility" title="Extension Versioning, Update and Compatibility">Extension Versioning, Update and Compatibility</a>. For Firefox/Thundebird 1.5, see <a href="/en/docs/Toolkit_version_format" title="Toolkit version format">Toolkit version format</a>.

Examples

<em:version>2.0</em:version>

<em:version>1.0.2</em:version>

<em:version>0.4.1.2005090112</em:version>

Firefox 1.5 / XULRunner 1.8 - addons that do not use a valid version format will not be installed. The version format is different from, although backwards-compatible with, 1.0's.

For addons hosted on addons.mozilla.org - Mozilla's update website may repackage your addon and correct or reject malformed version strings.

<a name="type"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=6" title="Edit section: type">edit</a>] type

An integer value representing the type of addon.

2Extensions
4Themes
8Locale
32<a href="/en/docs/Multiple_Item_Packaging" title="Multiple Item Packaging">Multiple Item Package</a>

Examples

<em:type>2</em:type>

New in <a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers">Firefox 1.5</a> This property was added for Firefox 1.5, and is only required for addon types other than Extensions and Themes.

New in <a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers">Firefox 3</a> Firefox 2 and previous supported a value of 16 to represent plugins. In Firefox 3 this has been removed.

<a name="targetApplication"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=7" title="Edit section: targetApplication">edit</a>] targetApplication

An object specifying an application targeted by this addon. This means that the addon will work with the application identified by the id property (<em:id>) specified (for a comprehensive list of application IDs see <a href="https://addons.mozilla.org/en-US/firefox/pages/appversions" class="external text" title="https://addons.mozilla.org/en-US/firefox/pages/appversions" rel="nofollow">Valid application versions for add-on developers</a>), from the minimum version (<em:minVersion>) up to and including the maximum version (<em:maxVersion>). These version strings are formatted in the same fashion as the <a href="#version" title="">version property</a> and will be compared to the application version; this allows the extension author to specify which versions of Firefox an extension has been tested with.

Note: Firefox 1.0-1.0.6 all have an application version of 1.0. Security and stability updates of Firefox 1.5 have application version 1.5.0.1, 1.5.0.2, etc. Extensions compatible with Firefox or Thunderbird 1.5 should specify a maxVersion of 1.5.0.*, so that they are automatically compatible with security and stability updates.

Extensions compatible with Firefox 2 should specify a maxVersion of 2.0.0.*

The Install Manifest must specify at least one of these objects, and may specify more if the addon targets multiple applications that support the Addon Manager (e.g. Firefox and Thunderbird)

Examples

<em:targetApplication>
 <Description>

  <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> 
  <em:minVersion>1.5</em:minVersion>
  <em:maxVersion>2.0.0.*</em:maxVersion>
 </Description>

</em:targetApplication>

New in <a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers">Firefox 3</a> Gecko 1.9 based applications allow you to use the special targetApplication id toolkit@mozilla.org to say that the add-on is compatible with any toolkit app with a toolkit version matching the minVersion and maxVersion.

<a name="name"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=8" title="Edit section: name">edit</a>] name

The name of the addon- intended for display in the UI.

Examples

<em:name>My Extension</em:name>
<a name="Optional_Property_Reference"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=9" title="Edit section: Optional Property Reference">edit</a>] Optional Property Reference

You may need to supply these properties, depending on the capabilities of your add-on.

<a name="localized"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=10" title="Edit section: localized">edit</a>] localized

New in <a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers">Firefox 3</a> Allows you to localize the add-on's name, description, contributors and other metadata. The localized description must specify at least one em:locale which indicates which locales to use this information for.

Examples

This declares a set of add-on metadata to be displayed when the application is running in the de-DE locale.

<em:localized>
  <Description>
    <em:locale>de-DE</em:locale>
    <em:name>Tab Sidebar</em:name>

    <em:description>Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.</em:description>
  </Description>
</em:localized>

The following properties which are described elsewhere in this page can be included in the localized property:

  • name
  • description
  • creator
  • homepageURL
  • developer
  • translator
  • contributor

More documentation can be found at <a href="/en/docs/Localizing_extension_descriptions" title="Localizing extension descriptions">Localizing extension descriptions</a>.

<a name="description"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=11" title="Edit section: description">edit</a>] description

A short description of the add-on - intended for display in the user interface. This description should fit on one short line of text.

Examples

<em:description>Advanced foo tools.</em:description>
<a name="creator"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=12" title="Edit section: creator">edit</a>] creator

The name of the creator/principal developer - intended for display in the user interface.

Examples

<em:creator>John Doe</em:creator>

or

<em:creator>CoolExtension Team</em:creator>
<a name="developer"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=13" title="Edit section: developer">edit</a>] developer

New in <a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers">Firefox 2</a> The name(s) of co-developers. You may specify more than one of this value to specify multiple developers.

Examples

<em:developer>Krunal</em:developer>
<em:developer>Billimoria</em:developer>
<a name="translator"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=14" title="Edit section: translator">edit</a>] translator

New in <a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers">Firefox 2</a> The name(s) of translators. You may specify more than one of this value to specify multiple translators.

Examples

<em:translator>Janez Novak</em:translator>
<em:translator>Kari Nordmann</em:translator>
<a name="contributor"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=15" title="Edit section: contributor">edit</a>] contributor

The name(s) of additional contributors. You may specify more than one of this value to specify multiple contributors.

Examples

<em:contributor>John Doe</em:contributor>

<em:contributor>John Doe</em:contributor>
<em:contributor>Jane Doe</em:contributor>

<em:contributor>Elvis Presley</em:contributor>
<a name="homepageURL"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=16" title="Edit section: homepageURL">edit</a>] homepageURL

A link to the addon's home page - intended for display in the user interface.

Examples

<em:homepageURL>http://www.foo.com/</em:homepageURL>

<a name="updateURL"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=17" title="Edit section: updateURL">edit</a>] updateURL

A link to a custom Update Manifest file that specifies available updates to the addon. The format is described below. If enabled, the addon manager periodically checks with this Manifest file to determine if newer versions are available.

Warning: It is strongly recommended that the updateURL be an HTTPS (secure) link. Non-secure update URLs can be hijacked by a malicious update.rdf file, enabling malware to infiltrate the user's computer. Alternatively, you could host your extension on <a href="http://addons.mozilla.org" class="external text" title="http://addons.mozilla.org" rel="nofollow">AMO</a> and leave out the updateURL completely. This provides secure updates automatically.

New in <a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers">Firefox 3</a> Gecko 1.9 applications require that if you specify an updateURL it must be a https url, or you must include an <a href="#updateKey" title="">updateKey</a> for security reasons.

Your server must send this file as text/rdf or the update checker will not work. text/xml also seems to work (projects on mozdev.org)

The addon manager will substitute the following values into this URL in case you wish to generate the response RDF dynamically, such as using PHP or CGI:

%REQ_VERSION%The version of the request. Currently 1
%ITEM_ID%The id of the addon being updated
%ITEM_VERSION%The version of the addon being updated
%ITEM_MAXAPPVERSION%The maxVersion of the targetApplication object corresponding to the current application for the addon being updated.
%ITEM_STATUS%New in <a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers">Firefox 2</a> Comma separated list of the add-ons operating status in the application. Contains at the least either userEnabled or userDisabled plus any number of incompatible, blockslisted or needsDependencies.
%APP_ID%The id of the current application
%APP_VERSION%The version of the current application
%APP_OS%New in <a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers">Firefox 1.5</a> The value of OS_TARGET from the Firefox build system, identifying the operating system being used.
%APP_ABI%New in <a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers">Firefox 1.5</a> The value of the TARGET_XPCOM_ABI value from the Firefox build system, identifying the compiler/architecture combination used to compile the current application.

Examples

<em:updateURL>http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;version=%ITEM_VERSION%</em:updateURL>

<em:updateURL>http://www.foo.com/extension/windows.rdf</em:updateURL>

For addons hosted on addons.mozilla.org: You may not specify an updateURL property. By default, Mozilla applications using the Addon Manager (such as Firefox and Thunderbird) will send update requests to addons.mozilla.org using the default web service. Every time you upload a new version of your addon or change its compatibility parameters through the author interface, your update manifest will be generated automatically.

Format of the Update Manifest: The Update Manifest is a RDF/XML datasource. For examples of an update manifest, see <a href="/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format" title="Extension Versioning, Update and Compatibility">Extension Versioning, Update and Compatibility</a> and <a href="/en/docs/Enabling_Extension_Updates_%28external%29" title="Enabling Extension Updates (external)">Enabling Extension Updates (external)</a>.

<a name="updateKey"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=18" title="Edit section: updateKey">edit</a>] updateKey

Introduced in Gecko 1.9

This article covers features introduced in <a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers">Firefox 3</a>


To ensure the security of update rdf data that is retrieved over plain http you must use a digital signature to verify the contents of the data. In order to do so you must include the public part of the cryptographic key in an updateKey entry in the install.rdf of the add-on. This can be generated using the <a href="/en/docs/McCoy" title="McCoy">McCoy</a> tool. Any line breaks and whitespace as part of this entry are ignored.

Examples

 <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj
               Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD
               NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J63wBixIeCxmysf
               awB/zH4KaPiY3vnrzQIDAQAB</em:updateKey>
<a name="optionsURL"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=19" title="Edit section: optionsURL">edit</a>] optionsURL

The chrome:// URL of the extension's options dialog box. This is not useful to extensions. i repeat, This is not useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the Options button is enabled and will show this.

Examples

<em:optionsURL>chrome://myext/content/options.xul</em:optionsURL>
<a name="aboutURL"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=20" title="Edit section: aboutURL">edit</a>] aboutURL

The chrome:// URL of the extension's about dialog box. This is only useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the About... link in the extension's context menu will show this dialog, rather than the default.

Examples

<em:aboutURL>chrome://myext/content/about.xul</em:aboutURL>
<a name="iconURL"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=21" title="Edit section: iconURL">edit</a>] iconURL

A chrome:// URL to a 32x32 icon to display in the addons list. If this property is not specified, a default icon is used.

<em:iconURL>chrome://myext/skin/icon.png</em:iconURL>

Note: For the above example to work you will also have to add a skin package line to your chrome.manifest file. See <a href="/en/docs/Chrome_Registration#skin" title="Chrome Registration">Chrome Registration#skin</a>. Alternatively you can place your icon in the directory specified in your content package line.

<a name="hidden"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=22" title="Edit section: hidden">edit</a>] hidden

A boolean value that when true makes the add-on not show up in the add-ons list, provided the add-on is installed in a <a href="#restricted_access_area" title="">restricted access area</a> (so it does not work for add-ons installed in the profile). This is for bundling integration hooks to larger applications where having an entry in the Extensions list does not make sense.

Examples

<em:hidden>true</em:hidden>
<a name="targetPlatform"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=23" title="Edit section: targetPlatform">edit</a>] targetPlatform

New in <a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers">Firefox 1.5</a> A string specifying a platform that the addon supports. It contains either the value of OS_TARGET alone or combined with <a href="/en/docs/XPCOM_ABI" title="XPCOM ABI">TARGET_XPCOM_ABI</a>, separated by an underscore (_).

OS_TARGET is typically the output of the 'uname -s' command on the target platform, e.g.:

  • WINNT for Windows NT, 2000, XP and later
  • Linux for all Linux versions
  • Darwin for all MacOS X versions
  • SunOS for all Solaris versions

You can specify multiple targetPlatform properties per manifest. If any value matches the application's build parameters, it will be installed; if not, the user will get an appropriate error message.

Examples

<em:targetPlatform>WINNT_x86-msvc</em:targetPlatform>

<em:targetPlatform>Linux</em:targetPlatform>

<em:targetPlatform>Darwin_ppc-gcc3</em:targetPlatform>

<em:targetPlatform>SunOS_sparc-sunc</em:targetPlatform>

Usually, you would use only the OS part for themes or for extensions that are not fully cross-platform. For extensions including binary (compiled) components, you should never use the OS alone, but include the <a href="/en/docs/XPCOM_ABI" title="XPCOM ABI">ABI (s)</a> that you compiled the components with. If you want to include multiple versions of the components, you should also use <a href="/en/docs/Bundles#Platform-specific_Subdirectories" title="Bundles">Platform-specific Subdirectories</a>.

Notes

  • In the same manifest file, you could even mix values with and without ABI. If a value for the application's OS is encountered that requires any specific ABI, the ABI is considered important for that OS and the application will refuse to install the addon if it does not find a matching OS/ABI combination. This means that if all of the above examples would occur in one manifest, the addon will install on any Linux build of the application, regardless of its ABI, but not on a Windows Cygwin build.
  • There may be builds of Firefox and Thunderbird which do not "know" their ABI (most likely ports to rare platforms, or non-official builds). These builds will refuse to install any addon that requires a specific ABI for their platform.

This property was added for Firefox/Thunderbird 1.5. Previous versions of these applications will ignore the restrictions and install the addon regardless of the platform.

<a name="requires"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=24" title="Edit section: requires">edit</a>] requires

New in <a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers">Firefox 2</a> This tag has a similar syntax to the <em:targetApplication> tag. If the addon specified by the <em:id> tag is not installed or has an incompatible version, the extension manager will disable your extension and show the message "Requires additional items". You can add as many <em:requires> tags as you like. Your extension will be disabled if any of the specified requirements fail.

Example

<em:requires>
   <Description>
     <!-- Lightning -->
     <em:id>{e2fda1a4-762b-4020-b5ad-a41df1933103}</em:id>

     <em:minVersion>0.5pre</em:minVersion>
     <em:maxVersion>0.5pre</em:maxVersion>
   </Description>
 </em:requires>

Notes

  • Currently, only <em:id>, <em:minVersion>, <em:maxVersion> are parsed inside the <em:requires> tag.
  • It is not currently possible to add dependencies that are specific to a <em:targetApplication>. See <a href="http://wiki.mozilla.org/Extension_Manager:Extension_Dependencies" class="extiw" title="wikimo:Extension_Manager:Extension_Dependencies">wikimo:Extension Manager:Extension Dependencies</a> for more details.

This property was added for Firefox/Thunderbird 2. Previous versions of these applications will ignore the restrictions and install the addon regardless of the requirements.

<a name="Obsolete_Property_Reference"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=25" title="Edit section: Obsolete Property Reference">edit</a>] Obsolete Property Reference

These properties were required in older versions of the Addon Manager, but have been replaced with newer and better mechanisms.

<a name="file"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=26" title="Edit section: file">edit</a>] file

Firefox 1.0 This property pointed to a chrome .jar file that contains chrome packages that require registration with the Chrome Registry.

The <em:file> property has a complex object value. The uri of the value is urn:mozilla:extension:file:jarFile.jar where jarFile.jar is the name of the jar file that contains the chrome package's files. This could also be the name of a directory that contains the chrome package's files, un-jarred (e.g. urn:mozilla:extension:file:directory). In either case, the referenced chrome package file(s) must be placed in the chrome subdirectory of the XPI's top level.

This object has a package property (with a path within the jar file or directory that leads to the location where the contents.rdf file responsible for registering that package is located), a locale property (ditto, but to register the locale) and a skin property (ditto, but to register the theme material).

In extensions for Firefox 1.5, this property is no longer necessary: the <a href="/en/docs/Chrome_Registration" title="Chrome Registration">chrome.manifest</a> at the top level of the XPI is used to locate chrome to register. If there is no chrome.manifest, this property is still read by the Addon Manager and a chrome.manifest is generated from old-style contents.rdf.

Examples

<em:file>
 <Description about="urn:mozilla:extension:file:myext.jar">
  <em:package>content/myext/</em:package>
  <em:locale>locale/en-US/myext/</em:locale>

  <em:skin>skin/classic/myext/<em:skin>
 </Description>
</em:file>

An Install Manifest may specify multiple file properties, one for each jar file or subdirectory that contains chrome to register.

<a name="Glossary"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=27" title="Edit section: Glossary">edit</a>] Glossary

<a name="restricted_access_area"></a>

[<a href="/en/docs/index.php?title=Install_Manifests&action=edit&section=28" title="Edit section: restricted access area">edit</a>] restricted access area

A restricted access area is an install location that could be restricted on a restricted-access account, regardless of whether or not the location is restricted with the current user privileges (see <a href="http://mxr.mozilla.org/mozilla/source/toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80" class="external text" title="http://mxr.mozilla.org/mozilla/source/toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80" rel="nofollow">nsIInstallLocation::restricted</a> ). Currently, the ($APPDIR)/extensions folder and the registry install location under HKEY_LOCAL_MACHINE (see <a href="/en/docs/Adding_Extensions_using_the_Windows_Registry" title="Adding Extensions using the Windows Registry">Adding Extensions using the Windows Registry</a> for details) are restricted.

The ($PROFILE)/extensions and HKEY_CURRENT_USER install locations, on the other hand, are not restricted.

Pre-expand include size: 11176 bytes Post-expand include size: 3380 bytes Template argument size: 293 bytes Maximum: 2097152 bytes

Saved in parser cache with key wiki_mdc-mediawiki:pcache:idhash:3655-0!1!0!!en!2 and timestamp 20070928004631

Retrieved from "<a href="http://developer.mozilla.org/en/docs/Install_Manifests">http://developer.mozilla.org/en/docs/Install_Manifests</a>"
end id content


end id page
end id container
   Served by mrapp53 in 3.724 secs.  </body>

</html>

restricted access area

A restricted access area is an install location that could be restricted on a restricted-access account, regardless of whether or not the location is restricted with the current user privileges (see {{template.Source("toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80", "nsIInstallLocation::restricted")}}). Currently, the ($APPDIR)/extensions folder and the registry install location under HKEY_LOCAL_MACHINE (see Adding Extensions using the Windows Registry for details) are restricted.

The ($PROFILE)/extensions and HKEY_CURRENT_USER install locations, on the other hand, are not restricted.


{{ wiki.languages( { "es": "es/Instalar_el_manifest", "fr": "fr/Manifestes_d\'installation", "ja": "ja/Install_Manifests", "pl": "pl/Manifesty_Instalacji" } ) }}

Revision Source

<p>
</p>
<h3 name="Introduction"> Introduction </h3>
<p>An Install Manifest is the file an Addon Manager-enabled XUL application uses to determine information about an addon as it is being installed. It contains metadata identifying the addon, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.
</p><p>The format of the Install Manifest is RDF/XML.
</p><p>The file must be called <code>install.rdf</code> and live at the top level of an addon's XPI file.
</p>
<h3 name="Layout"> Layout </h3>
<p>The basic layout of an Install Manifest is like so:
</p>
<pre class="eval">&lt;?xml version="1.0"?&gt;

&lt;RDF xmlns="<span class="plain">http://www.w3.org/1999/02/22-rdf-syntax-ns#</span>"
     xmlns:em="<span class="plain">http://www.mozilla.org/2004/em-rdf#</span>"&gt;
  &lt;Description about="urn:mozilla:install-manifest"&gt;
    &lt;!-- properties --&gt;
  &lt;/Description&gt;
&lt;/RDF&gt;
</pre>
<p>Some properties are required, some are optional. Some have simple string values, some are complex resources.
</p>
<h3 name="Required_Property_Reference"> Required Property Reference </h3>
<p>Your Install Manifest must specify these properties correctly otherwise your addon may not install. 
</p>
<h4 name="id"> id </h4>
<p>The id of the extension, which is a:
</p>
<ul><li> GUID (generate using guidgen on Windows, uuidgen on Linux and makeuuid on Solaris) (Firefox 1.0)
</li><li> {{template.Fx_minversion_inline(1.5)}} A string formatted like so: <code>extensionname@organization.tld</code>
</li></ul>
<p>The latter format is significantly easier to generate and manipulate. Firefox 1.5 has checking to ensure that your id falls into one format or the other and will refuse to install addons that have malformed ids. 
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:id&gt;myextension@mysite.com&lt;/em:id&gt;

&lt;em:id&gt;{daf44bf7-a45e-4450-979c-91cf07434c3d}&lt;/em:id&gt;
</pre>
<h4 name="version"> version </h4>
<p>A version string identifying the version of the addon being supplied.
</p><p>For Firefox/Thundebird 1.0, the format must conform to the rules specified in <a href="en/Extension_Versioning%2c_Update_and_Compatibility">Extension Versioning, Update and Compatibility</a>. For Firefox/Thundebird 1.5, see <a href="en/Toolkit_version_format">Toolkit version format</a>.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:version&gt;2.0&lt;/em:version&gt;

&lt;em:version&gt;1.0.2&lt;/em:version&gt;

&lt;em:version&gt;0.4.1.2005090112&lt;/em:version&gt;

</pre>
<p><b>Firefox 1.5 / XULRunner 1.8</b> - addons that do not use a valid version format will not be installed. The version format is different from, although backwards-compatible with, 1.0's.
</p><p><b>For addons hosted on addons.mozilla.org</b> - Mozilla's update website may repackage your addon and correct or reject malformed version strings.
</p>
<h4 name="type"> type </h4>
<p>An integer value representing the type of addon. 
</p>
<table>
 <tbody><tr><td>2</td><td>Extensions</td></tr>
 <tr><td>4</td><td>Themes</td></tr>
 <tr><td>8</td><td>Locale</td></tr>
 <tr><td>32</td><td><a href="en/Multiple_Item_Packaging">Multiple Item Package</a></td></tr>
</tbody></table>
<p><b>Examples</b>
</p>
<pre class="eval">&lt;em:type&gt;2&lt;/em:type&gt;
</pre>
<p>{{template.Fx_minversion_inline(1.5)}} This property was added for Firefox 1.5, and is only required for addon types other than Extensions and Themes.
</p><p>{{template.Fx_minversion_inline(3)}} Firefox 2 and previous supported a value of 16 to represent plugins. In Firefox 3 this has been removed.
</p>
<h4 name="targetApplication"> targetApplication </h4>
<p>An object specifying an application targeted by this addon. This means that the addon will work with the application identified by the id property (<code>&lt;em:id&gt;</code>) specified (for a comprehensive list of application IDs see <a class="external" href="https://addons.mozilla.org/en-US/firefox/pages/appversions">Valid application versions for add-on developers</a>), from the minimum version (<code>&lt;em:minVersion&gt;</code>) up to and including the maximum version (<code>&lt;em:maxVersion&gt;</code>). These version strings are formatted in the same fashion as the <a href="#version"><code>version</code> property</a> and will be compared to the application version; this allows the extension author to specify which versions of Firefox an extension has been tested with.
</p><p>Note: Firefox 1.0-1.0.6 all have an application version of <code>1.0</code>. Security and stability updates of Firefox 1.5 have application version 1.5.0.1, 1.5.0.2, etc. Extensions compatible with Firefox or Thunderbird 1.5 should specify a maxVersion of 1.5.0.*, so that they are automatically compatible with security and stability updates.
</p><p>Extensions compatible with Firefox 2 should specify a <code>maxVersion</code> of <code>2.0.0.*</code>
</p><p>The Install Manifest must specify at least one of these objects, and may specify more if the addon targets multiple applications that support the Addon Manager (e.g. Firefox and Thunderbird)
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:targetApplication&gt;
 &lt;Description&gt;
  &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt; <span class="comment">Firefox</span>
  &lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;
  &lt;em:maxVersion&gt;2.0.0.*&lt;/em:maxVersion&gt;
 &lt;/Description&gt;
&lt;/em:targetApplication&gt;
</pre>
<p>{{template.Fx_minversion_inline(3)}} Gecko 1.9 based applications allow you to use the special targetApplication id <code>toolkit@mozilla.org</code> to say that the add-on is compatible with any toolkit app with a toolkit version matching the minVersion and maxVersion.
</p>
<h4 name="name"> name </h4>
<p>The name of the addon- intended for display in the UI.
</p><p><b> Examples </b>
</p>
<pre class="eval">&lt;em:name&gt;My Extension&lt;/em:name&gt;
</pre>
<h3 name="Optional_Property_Reference"> Optional Property Reference </h3>
<p>You may need to supply these properties, depending on the capabilities of your add-on.
</p>
<h4 name="localized"> localized </h4>
<p>{{template.Fx_minversion_inline(3)}} Allows you to localize the add-on's name, description, contributors and other metadata. The localized description must specify at least one <code>em:locale</code> which indicates which locales to use this information for.
</p><p><b>Examples</b>
</p><p>This declares a set of add-on metadata to be displayed when the application is running in the de-DE locale.
</p>
<pre>&lt;em:localized&gt;
  &lt;Description&gt;
    &lt;em:locale&gt;de-DE&lt;/em:locale&gt;
    &lt;em:name&gt;Tab Sidebar&lt;/em:name&gt;
    &lt;em:description&gt;Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.&lt;/em:description&gt;
  &lt;/Description&gt;
&lt;/em:localized&gt;
</pre>
<p>The following properties which are described elsewhere in this page can be included in the localized property:
</p>
<ul><li> name
</li><li> description
</li><li> creator
</li><li> homepageURL
</li><li> developer
</li><li> translator
</li><li> contributor
</li></ul>
<p>More documentation can be found at <a href="en/Localizing_extension_descriptions">Localizing extension descriptions</a>.
</p>
<h4 name="description"> description </h4>
<p>A short description of the add-on - intended for display in the user interface. This description should fit on one short line of text.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:description&gt;Advanced foo tools.&lt;/em:description&gt;
</pre>
<h4 name="creator"> creator </h4>
<p>The name of the creator/principal developer - intended for display in the user interface.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:creator&gt;John Doe&lt;/em:creator&gt;
</pre>
<p>or
</p>
<pre class="eval">&lt;em:creator&gt;CoolExtension Team&lt;/em:creator&gt;
</pre>
<h4 name="developer"> developer </h4>
<p>{{template.Fx_minversion_inline(2)}} The name(s) of co-developers. You may specify more than one of this value to specify multiple developers.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:developer&gt;Krunal&lt;/em:developer&gt;
&lt;em:developer&gt;Billimoria&lt;/em:developer&gt;
</pre>
<h4 name="translator"> translator </h4>
<p>{{template.Fx_minversion_inline(2)}} The name(s) of translators. You may specify more than one of this value to specify multiple translators.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:translator&gt;Janez Novak&lt;/em:translator&gt;
&lt;em:translator&gt;Kari Nordmann&lt;/em:translator&gt;
</pre>
<h4 name="contributor"> contributor </h4>
<p>The name(s) of additional contributors. You may specify more than one of this value to specify multiple contributors. 
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;

&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
&lt;em:contributor&gt;Jane Doe&lt;/em:contributor&gt;
&lt;em:contributor&gt;Elvis Presley&lt;/em:contributor&gt;
</pre>
<h4 name="homepageURL"> homepageURL </h4>
<p>A link to the addon's home page - intended for display in the user interface.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:homepageURL&gt;<span class="plain">http://www.foo.com/</span>&lt;/em:homepageURL&gt;
</pre>
<h4 name="updateURL"> updateURL </h4>
<p>A link to a custom Update Manifest file that specifies available updates to the addon. The format is described below. If enabled, the addon manager periodically checks with this Manifest file to determine if newer versions are available. 
</p>
<div class="warning"><b>Warning:</b> It is strongly recommended that the <code>updateURL</code> be an HTTPS (secure) link.  Non-secure update URLs can be hijacked by a malicious <code>update.rdf</code> file, enabling malware to infiltrate the user's computer.  Alternatively, you could host your extension on <a class="external" href="http://addons.mozilla.org">AMO</a> and leave out the <code>updateURL</code> completely.  This provides secure updates automatically.</div>
<p>{{template.Fx_minversion_inline(3)}} Gecko 1.9 applications require that if you specify an updateURL it must be a https url, or you must include an <a href="#updateKey">updateKey</a> for security reasons.
</p><p>Your server must send this file as <code>text/rdf</code> or the update checker will not work. <code>text/xml</code> also seems to work (projects on mozdev.org)
</p><p>The addon manager will substitute the following values into this URL in case you wish to generate the response RDF dynamically, such as using PHP or CGI:
</p>
<table border="1" cellpadding="3" cellspacing="2">
 <tbody><tr><td><code>%REQ_VERSION%</code></td><td>The version of the request. Currently 1</td></tr>
 <tr><td><code>%ITEM_ID%</code></td><td>The <code>id</code> of the addon being updated</td></tr>
 <tr><td><code>%ITEM_VERSION%</code></td><td>The <code>version</code> of the addon being updated</td></tr>
 <tr><td><code>%ITEM_MAXAPPVERSION%</code></td><td>The <code>maxVersion</code> of the <code>targetApplication</code> object corresponding to the current application for the addon being updated.</td></tr>
 <tr><td><code>%ITEM_STATUS%</code></td><td>{{template.Fx_minversion_inline(2)}} Comma separated list of the add-ons operating status in the application. Contains at the least either <code>userEnabled</code> or <code>userDisabled</code> plus any number of <code>incompatible</code>, <code>blockslisted</code> or <code>needsDependencies</code>.</td></tr>
 <tr><td><code>%APP_ID%</code></td><td>The <code>id</code> of the current application</td></tr>
 <tr><td><code>%APP_VERSION%</code></td><td>The <code>version</code> of the current application</td></tr>
 <tr><td><code>%APP_OS%</code></td><td>{{template.Fx_minversion_inline(1.5)}} The value of <code>OS_TARGET</code> from the Firefox build system, identifying the operating system being used.</td></tr>
 <tr><td><code>%APP_ABI%</code></td><td>{{template.Fx_minversion_inline(1.5)}} The value of the <code>TARGET_XPCOM_ABI</code> value from the Firefox build system, identifying the compiler/architecture combination used to compile the current application.</td></tr>
</tbody></table>
<p><b>Examples</b>
</p>
<pre class="eval">&lt;em:updateURL&gt;<span class="plain">http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;amp;version=%ITEM_VERSION%</span>&lt;/em:updateURL&gt;
&lt;em:updateURL&gt;<span class="plain">http://www.foo.com/extension/windows.rdf</span>&lt;/em:updateURL&gt;
</pre>
<p><b>For addons hosted on addons.mozilla.org:</b> You may not specify an updateURL property. By default, Mozilla applications using the Addon Manager (such as Firefox and Thunderbird) will send update requests to <code>addons.mozilla.org</code> using the default web service. Every time you upload a new version of your addon or change its compatibility parameters through the author interface, your update manifest will be generated automatically.
</p><p><b>Format of the Update Manifest:</b> The Update Manifest is a RDF/XML datasource. For examples of an update manifest, see <a href="en/Extension_Versioning%2c_Update_and_Compatibility#Update_RDF_Format">Extension Versioning, Update and Compatibility</a> and <a href="en/Enabling_Extension_Updates_(external)">Enabling Extension Updates (external)</a>.
</p>
<h4 name="updateKey"> updateKey </h4>
<p>{{template.Gecko_minversion_header(1.9)}}
{{template.Fx_minversion_header(3)}}
</p><p>To ensure the security of update rdf data that is retrieved over plain http you must use a digital signature to verify the contents of the data. In order to do so you must include the public part of the cryptographic key in an updateKey entry in the install.rdf of the add-on. This can be generated using the <a href="en/McCoy">McCoy</a> tool. Any line breaks and whitespace as part of this entry are ignored.
</p><p><b>Examples</b>
</p>
<pre class="eval"> &lt;em:updateKey&gt;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj
               Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD
               NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J63wBixIeCxmysf
               awB/zH4KaPiY3vnrzQIDAQAB&lt;/em:updateKey&gt;
</pre>
<h4 name="optionsURL"> optionsURL </h4>
<p>The <code>chrome://</code> URL of the extension's options dialog box. This is not useful to extensions. i repeat, This is not useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the Options button is enabled and will show this.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:optionsURL&gt;chrome://myext/content/options.xul&lt;/em:optionsURL&gt;
</pre>
<h4 name="aboutURL"> aboutURL </h4>
<p>The <code>chrome://</code> URL of the extension's about dialog box. This is only useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the About... link in the extension's context menu will show this dialog, rather than the default.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:aboutURL&gt;chrome://myext/content/about.xul&lt;/em:aboutURL&gt;
</pre>
<h4 name="iconURL"> iconURL </h4>
<p>A <code>chrome://</code> URL to a 32x32 icon to display in the addons list. If this property is not specified, a default icon is used. 
</p>
<pre class="eval">&lt;em:iconURL&gt;chrome://myext/skin/icon.png&lt;/em:iconURL&gt;
</pre>
<p>Note: <em>For the above example to work you will also have to add a <code>skin package</code> line to your <code>chrome.manifest</code> file. See <a href="en/Chrome_Registration#skin">Chrome Registration#skin</a>.</em> Alternatively you can place your icon in the directory specified in your <code>content package</code> line.
</p>
<h4 name="hidden"> hidden </h4>
<p>A boolean value that when <code>true</code> makes the add-on not show up in the add-ons list, provided the add-on is installed in a {{template.Anch("restricted access area")}} (so it does not work for add-ons installed in the profile). This is for bundling integration hooks to larger applications where having an entry in the Extensions list does not make sense.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:hidden&gt;true&lt;/em:hidden&gt;
</pre>
<h4 name="targetPlatform"> targetPlatform </h4>
<p>{{template.Fx_minversion_inline(1.5)}} A string specifying a platform that the addon supports. It contains either the value of OS_TARGET alone or combined with <a href="en/XPCOM_ABI">TARGET_XPCOM_ABI</a>, separated by an underscore (_).
</p><p>OS_TARGET is typically the output of the 'uname -s' command on the target platform, e.g.:
</p>
<ul><li> <code>WINNT</code> for Windows NT, 2000, XP and later
</li><li> <code>Linux</code> for all Linux versions
</li><li> <code>Darwin</code> for all MacOS X versions
</li><li> <code>SunOS</code> for all Solaris versions
</li></ul>
<p>You can specify multiple targetPlatform properties per manifest. If any value matches the application's build parameters, it will be installed; if not, the user will get an appropriate error message.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:targetPlatform&gt;WINNT_x86-msvc&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;Linux&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;Darwin_ppc-gcc3&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;SunOS_sparc-sunc&lt;/em:targetPlatform&gt;
</pre>
<p>Usually, you would use only the OS part for themes or for extensions that are not fully cross-platform. For extensions including binary (compiled) components, you should never use the OS alone, but include the <a href="en/XPCOM_ABI">ABI (s)</a> that you compiled the components with. If you want to include multiple versions of the components, you should also use <a href="en/Bundles#Platform-specific_Subdirectories">Platform-specific Subdirectories</a>.
</p><p><b>Notes</b>
</p>
<ul><li> In the same manifest file, you could even mix values with and without ABI. If a value for the application's OS is encountered that requires any specific ABI, the ABI is considered important for that OS and the application will refuse to install the addon if it does not find a matching OS/ABI combination. This means that if all of the above examples would occur in one manifest, the addon will install on any Linux build of the application, regardless of its ABI, but not on a Windows Cygwin build.
</li></ul>
<ul><li> There may be builds of Firefox and Thunderbird which do not "know" their ABI (most likely ports to rare platforms, or non-official builds). These builds will refuse to install any addon that requires a specific ABI for their platform.
</li></ul>
<p>This property was added for Firefox/Thunderbird 1.5. Previous versions of these applications will ignore the restrictions and install the addon regardless of the platform.
</p>
<h4 name="requires"> requires </h4>
<p>{{template.Fx_minversion_inline(2)}} This tag has a similar syntax to the <code>&lt;em:targetApplication&gt;</code> tag. If the addon specified by the <code>&lt;em:id&gt;</code> tag is not installed or has an incompatible version, the extension manager will disable your extension and show the message "Requires additional items". You can add as many <code>&lt;em:requires&gt;</code> tags as you like. Your extension will be disabled if any of the specified requirements fail.
</p><p><b>Example</b>
</p>
<pre>&lt;em:requires&gt;
   &lt;Description&gt;
     &lt;!-- Lightning --&gt;
     &lt;em:id&gt;{e2fda1a4-762b-4020-b5ad-a41df1933103}&lt;/em:id&gt;
     &lt;em:minVersion&gt;0.5pre&lt;/em:minVersion&gt;
     &lt;em:maxVersion&gt;0.5pre&lt;/em:maxVersion&gt;
   &lt;/Description&gt;
 &lt;/em:requires&gt;
</pre>
<p><b>Notes</b>
</p>
<ul><li> Currently, only <code>&lt;em:id&gt;</code>, <code>&lt;em:minVersion&gt;</code>, <code>&lt;em:maxVersion&gt;</code> are parsed inside the <code>&lt;em:requires&gt;</code> tag.
</li><li> It is not currently possible to add dependencies that are specific to a <code>&lt;em:targetApplication&gt;</code>. See {{mediawiki.interwiki('wikimo', 'Extension_Manager:Extension_Dependencies', 'wikimo:Extension Manager:Extension Dependencies')}} for more details.
</li></ul>
<p>This property was added for Firefox/Thunderbird 2. Previous versions of these applications will ignore the restrictions and install the addon regardless of the requirements.
</p>
<h3 name="Obsolete_Property_Reference"> Obsolete Property Reference </h3>
<p>These properties were required in older versions of the Addon Manager, but have been replaced with newer and better mechanisms.
</p>
<h4 name="file"> file </h4>
<p><b>Firefox 1.0</b> This property pointed to a chrome <code>.jar</code> file that contains chrome packages that require registration with the Chrome Registry.
</p><p>The <code>&lt;em:file&gt;</code> property has a complex object value. The uri of the value is <code>urn:mozilla:extension:file:jarFile.jar</code> where <code>jarFile.jar</code> is the name of the jar file that contains the chrome package's files. This could also be the name of a directory that contains the chrome package's files, un-jarred (e.g. <code>urn:mozilla:extension:file:directory</code>). In either case, the referenced chrome package file(s) must be placed in the <code>chrome</code> subdirectory of the XPI's top level.
</p><p>This object has a <code>package</code> property (with a path within the jar file or directory that leads to the location where the <code>contents.rdf</code> file responsible for registering that package is located), a <code>locale</code> property (ditto, but to register the locale) and a <code>skin</code> property (ditto, but to register the theme material).
</p><p>In extensions for Firefox 1.5, this property is no longer necessary: the <code><a href="en/Chrome_Registration">chrome.manifest</a></code> at the top level of the XPI is used to locate chrome to register. If there is no chrome.manifest, this property is still read by the Addon Manager and a chrome.manifest is generated from old-style contents.rdf.
</p><p><b>Examples</b>
</p>
<pre class="eval">&lt;em:file&gt;
 &lt;Description about="urn:mozilla:extension:file:myext.jar"&gt;
  &lt;em:package&gt;content/myext/&lt;/em:package&gt;
  &lt;em:locale&gt;locale/en-US/myext/&lt;/em:locale&gt;
  &lt;em:skin&gt;skin/classic/myext/&lt;em:skin&gt;
 &lt;/Description&gt;
&lt;/em:file&gt;
</pre>
<p>An Install Manifest may specify multiple <code>file</code> properties, one for each jar file or subdirectory that contains chrome to register.
</p>
<h3 name="Glossary"> Glossary </h3>
<p>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"&gt;
</p>
<pre class="eval"> &lt;head&gt;
   &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
   &lt;meta http-equiv="Content-Language" content="en" /&gt;
   &lt;meta name="keywords" content="Install Manifests,Firefox 1.5 for developers,Firefox 3 for developers,Firefox 2 for developers,Adding Extensions using the Windows Registry,Bundles,Chrome Registration,Enabling Extension Updates (external),Extension Versioning, Update and Compatibility,Localizing extension descriptions,McCoy" /&gt;
</pre>
<p>&lt;link title="RDF Metadata" type="application/rdf+xml" href="/en/docs/index.php?title=Special:Rdf&amp;target=Install_Manifests" rel="meta" /&gt;
&lt;link rel="shortcut icon" href="/favicon.ico" /&gt;
&lt;link rel="search" type="application/opensearchdescription+xml" href="/en/docs/opensearch_desc.php" title="MDC (English)" /&gt;
&lt;link rel="copyright" href="/en/docs/MDC:Copyrights" /&gt;
</p>
<pre class="eval">   &lt;title&gt;Install Manifests - MDC&lt;/title&gt;
</pre>
<p>	&lt;link rel="alternate" type="application/rss+xml" title="MDC Webwatch" href="http://developer.mozilla.org/webwatch/?feed=rss" /&gt;
	&lt;link rel="alternate" type="application/rss+xml" title="MDC DevNews" href="http://developer.mozilla.org/devnews/?feed=rss" /&gt;
	&lt;link rel="alternate" type="application/rss+xml" title="Recent Changes (en)" href="http://developer.mozilla.org/en/docs/index.php?title=Special:Recentchanges&amp;feed=rss" /&gt;
	&lt;link rel="alternate" type="application/rss+xml" title="New Pages (en)" href="http://developer.mozilla.org/en/docs/index.php?title=Special:Newpages&amp;feed=rss" /&gt;
	&lt;link rel="stylesheet" type="text/css" media="all" href="/css/base.css" /&gt;
	&lt;link rel="stylesheet" type="text/css" media="all" href="/css/wiki.css" /&gt;
	&lt;link rel="stylesheet" type="text/css" media="print" href="/css/wikiprint.css" /&gt;
	<span class="comment">{{mediawiki.external('if gte IE 6')}}&gt;&lt;style type="text/css"&gt;@import "/en/docs/skins/devmo/IE60Fixes.css";&lt;/style&gt;&lt;!{{mediawiki.external('endif')}}</span>
	<span class="comment">{{mediawiki.external('if IE')}}&gt;&lt;script type="text/javascript" src="/en/docs/skins/common/IEFixes.js"&gt;&lt;/script&gt; 	&lt;meta http-equiv="imagetoolbar" content="no" /&gt;&lt;!{endif]</span>
</p>
<pre class="eval">   &lt;script type= "text/javascript"&gt;/*&lt;![CDATA[*/
</pre>
<p>var skin = "devmo";
var stylepath = "/en/docs/skins";
var wgArticlePath = "/en/docs/$1";
var wgScriptPath = "/en/docs";
var wgServer = "http://developer.mozilla.org";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "Install_Manifests";
var wgTitle = "Install Manifests";
var wgArticleId = "3655";
var wgIsArticle = true;
var wgUserName = "Bye";
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "57781";
/*]]&gt;*/&lt;/script&gt;
</p>
<pre class="eval">   &lt;script type="text/javascript" src="/en/docs/index.php?title=-&amp;action=raw&amp;smaxage=0&amp;gen=js"&gt;&lt;/script&gt;    &lt;script type="text/javascript" src="/en/docs/skins/common/wikibits.js"&gt;&lt;/script&gt;
   &lt;script type="text/javascript" src="/en/docs/skins/devmo/devmo.js"&gt;&lt;/script&gt;
   &lt;script type="text/javascript" src="/en/docs/skins/devmo/prototype.js"&gt;&lt;/script&gt;
   &lt;script type="text/javascript" src="/en/docs/skins/devmo/scriptaculous.js"&gt;&lt;/script&gt;
</pre>
<pre class="eval">   &lt;style type="text/css"&gt;/*&lt;![CDATA[*/
</pre>
<p>@import "/en/docs/index.php?title=MediaWiki:Common.css&amp;usemsgcache=yes&amp;action=raw&amp;ctype=text/css&amp;smaxage=18000";
@import "/en/docs/index.php?title=MediaWiki:Devmo.css&amp;usemsgcache=yes&amp;action=raw&amp;ctype=text/css&amp;smaxage=18000";
@import "/en/docs/index.php?title=-&amp;action=raw&amp;gen=css&amp;maxage=18000&amp;smaxage=0";
/*]]&gt;*/&lt;/style&gt;              &lt;/head&gt;
</p>
<pre class="eval"> &lt;body                 class="ns-0"		id="developer-mozilla-org"&gt;
</pre>
<p><br>
</p>
<div id="container">
	<p class="skipLink">&lt;a href="#content" accesskey="2"&gt;Skip to main content&lt;/a&gt;</p>
	<div id="mozilla-org">&lt;a href="http://www.mozilla.org/"&gt;Visit Mozilla.org&lt;/a&gt;</div>
<div id="header">
	<h2 name=".3Ca_href.3D.22.2F.22_title.3D.22Return_to_home_page.22_accesskey.3D.221.22.3EMozilla_Developer_Network.3C.2Fa.3E">&lt;a href="/" title="Return to home page" accesskey="1"&gt;Mozilla Developer Network&lt;/a&gt;</h2>
<p>	<span class="comment">search box</span>
		&lt;form name="searchform" action="/en/docs/Special:Nutch" id="searchform"&gt;
		&lt;input type="hidden" name="language" value="en" /&gt;
		&lt;input type="hidden" name="start" value="0" /&gt;
		&lt;input type="hidden" name="hitsPerPage" value="10" /&gt;
			&lt;input id="searchInput" name="query" type="text"
				accesskey="s" /&gt;
			&lt;input type='submit' name="fulltext"
				class="searchButton"
				value="Search" /&gt;
</p><p>		&lt;/form&gt;
	<span class="comment">end searchbox</span>
</p>
</div>
<div id="navigation">
	<div id="bar">
		<div>
			<ul id="personal">
				<li id="pt-userpage">&lt;a href="/en/docs/User:Bye" class="new"&gt;Bye&lt;/a&gt;</li><li id="pt-mytalk">&lt;a href="/en/docs/User_talk:Bye" class="new"&gt;My talk&lt;/a&gt;</li><li id="pt-preferences">&lt;a href="/en/docs/Special:Preferences"&gt;My preferences&lt;/a&gt;</li><li id="pt-watchlist">&lt;a href="/en/docs/Special:Watchlist"&gt;My watchlist&lt;/a&gt;</li><li id="pt-mycontris">&lt;a href="/en/docs/Special:Contributions/Bye"&gt;My contributions&lt;/a&gt;</li><li id="pt-logout">&lt;a href="/en/docs/index.php?title=Special:Userlogout&amp;returnto=Install_Manifests"&gt;Log out&lt;/a&gt;</li>			</ul>
			<ul id="contenttypes">
					    									      			<li class="selected">&lt;a href="/en/docs/Main_Page"&gt;Documentation&lt;/a&gt;</li>
						     									     									     									     									     									     									     											<li>&lt;a href="http://developer.mozilla.org/devnews/"&gt;DevNews&lt;/a&gt;</li>
				<li>&lt;a href="http://developer.mozilla.org/webwatch/"&gt;Webwatch&lt;/a&gt;</li>
			</ul>
		</div>
	</div>
</div>
<p><br>			
</p>
<div id="page">
<p><br>
</p>
	<div id="sidebar">
		<div class="sidebarslidecontrol" id="sidebarslideup">
<p>			Hide Sidebar	
</p>
		</div>	
		<div class="sidebarslidecontrol" id="sidebarslidedown" style="display: none;">
<p>			Show Sidebar
</p>
		</div>
		<div id="sidebarslidebox">
<p><br>			
</p>
		<div>
		<div id="related">
			<div>
				<h4 name="Related">Related</h4>
				<p class="catlinks">&lt;a href="/en/docs/Special:Categories" title="Special:Categories"&gt;Categories&lt;/a&gt;: <span dir="ltr">&lt;a href="/en/docs/Category:Extensions" title="Category:Extensions"&gt;Extensions&lt;/a&gt;</span> | <span dir="ltr">&lt;a href="/en/docs/Category:Toolkit_API" title="Category:Toolkit API"&gt;Toolkit API&lt;/a&gt;</span></p>			</div>
		</div>
<p>		<span class="comment">WIKI NAVIGATION</span>
		&lt;script type="text/javascript"&gt; if (window.isMSIE55) fixalpha(); &lt;/script&gt;
</p>
		<div class="pagetools">
			<div>
					  			<h4 name="Navigation">Navigation</h4>
	    		<ul>

	    				      			<li id="n-mainpage">&lt;a href="/en/docs/Main_Page"&gt;Main Page&lt;/a&gt;</li>
	     				      			<li id="n-portal">&lt;a href="/en/docs/MDC:Community_Portal"&gt;Community portal&lt;/a&gt;</li>
	     				      			<li id="n-currentevents">&lt;a href="/en/docs/Current_events"&gt;Current events&lt;/a&gt;</li>
	     				      			<li id="n-recentchanges">&lt;a href="/en/docs/Special:Recentchanges"&gt;Recent changes&lt;/a&gt;</li>
	     				      			<li id="n-randompage">&lt;a href="/en/docs/Special:Random"&gt;Random page&lt;/a&gt;</li>
	     				      			<li id="n-help">&lt;a href="/en/docs/Help:Contents"&gt;Help&lt;/a&gt;</li>
	     				      			<li id="n-sitesupport">&lt;a href="/en/docs/MDC:Site_support"&gt;Donations&lt;/a&gt;</li>
	     				    		</ul>
							</div>
		</div>
<p>		<span class="comment">VIEWS</span>
</p>
		<div class="pagetools">
			<div>
				<h4 name="Views">Views</h4>
				<ul>
	  			<li class="selected" id="ca-nstab-main">&lt;a href="/en/docs/Install_Manifests"&gt;Article&lt;/a&gt;</li><li id="ca-talk">&lt;a href="/en/docs/Talk:Install_Manifests"&gt;Discussion&lt;/a&gt;</li><li id="ca-edit">&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit"&gt;Edit&lt;/a&gt;</li><li id="ca-history">&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=history"&gt;History&lt;/a&gt;</li><li id="ca-move">&lt;a href="/en/docs/Special:Movepage/Install_Manifests"&gt;Move&lt;/a&gt;</li><li id="ca-watch">&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=watch"&gt;Watch&lt;/a&gt;</li>	  			</ul>
			</div>
		</div>
<p>		<span class="comment">TOOLBOX</span>
</p>
		<div class="pagetools">
			<div>
	    		<h4 name="Toolbox">Toolbox</h4>
	    		<ul>
		  								<li id="t-whatlinkshere">&lt;a href="/en/docs/Special:Whatlinkshere/Install_Manifests"&gt;What links here&lt;/a&gt;</li>
		  								<li id="t-recentchangeslinked">&lt;a href="/en/docs/Special:Recentchangeslinked/Install_Manifests"&gt;Related changes&lt;/a&gt;</li>
		  			              			      				      				      				      				      				      				      			<li id="t-upload">&lt;a href="/en/docs/Special:Upload"&gt;Upload file&lt;/a&gt;</li>	      				      			<li id="t-specialpages">&lt;a href="/en/docs/Special:Specialpages"&gt;Special pages&lt;/a&gt;</li>	      				      				      			<li id="t-print">&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;printable=yes"&gt;Printable version&lt;/a&gt;</li>
	      				    		</ul>
	    	</div>
		</div>
<p>		<span class="comment">LANGUAGE LINKS</span>
</p>
				<div class="pagetools">
			<div>
				<h4 name="In_other_languages">In other languages</h4>
				<ul>

									<li>
					&lt;a href="http://developer.mozilla.org/es/docs/Instalar_el_manifest"&gt;Español&lt;/a&gt;
					</li>
									<li>
					&lt;a href="http://developer.mozilla.org/fr/docs/Manifestes_d%27installation"&gt;Français&lt;/a&gt;
					</li>
									<li>
					&lt;a href="http://developer.mozilla.org/ja/docs/Install_Manifests"&gt;日本語&lt;/a&gt;

					</li>
									<li>
					&lt;a href="http://developer.mozilla.org/pl/docs/Manifesty_Instalacji"&gt;Polski&lt;/a&gt;
					</li>
								</ul>
			</div>
		</div>
		</div>
		</div>
	</div><span class="comment">END SIDEBAR</span>
	<div id="content">
		<div class="article">
<p>		&lt;a name="top" id="contentTop"&gt;&lt;/a&gt;
</p>
				<h2 class="firstHeading" name="Install_Manifests">Install Manifests</h2>
			<h4 id="siteSub" name="From_MDC">From MDC</h4>
			<div id="contentSub"></div>
<p><br>
</p>
				<div class="breadcrumbs">&lt;a class='breadcrumbs' href='/en/docs/Main_Page'&gt;Main Page&lt;/a&gt; &gt; <span class="breadcrumbs">Install Manifests</span></div>
<table class="toc" id="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h3 name="Contents">Contents</h3></div>
<ul>
<li class="toclevel-1">&lt;a href="#Introduction"&gt;<span class="tocnumber">1</span> <span class="toctext">Introduction</span>&lt;/a&gt;</li>
<li class="toclevel-1">&lt;a href="#Layout"&gt;<span class="tocnumber">2</span> <span class="toctext">Layout</span>&lt;/a&gt;</li>
<li class="toclevel-1">&lt;a href="#Required_Property_Reference"&gt;<span class="tocnumber">3</span> <span class="toctext">Required Property Reference</span>&lt;/a&gt;
<ul>
<li class="toclevel-2">&lt;a href="#id"&gt;<span class="tocnumber">3.1</span> <span class="toctext">id</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#version"&gt;<span class="tocnumber">3.2</span> <span class="toctext">version</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#type"&gt;<span class="tocnumber">3.3</span> <span class="toctext">type</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#targetApplication"&gt;<span class="tocnumber">3.4</span> <span class="toctext">targetApplication</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#name"&gt;<span class="tocnumber">3.5</span> <span class="toctext">name</span>&lt;/a&gt;</li>
</ul>
</li>
<li class="toclevel-1">&lt;a href="#Optional_Property_Reference"&gt;<span class="tocnumber">4</span> <span class="toctext">Optional Property Reference</span>&lt;/a&gt;
<ul>
<li class="toclevel-2">&lt;a href="#localized"&gt;<span class="tocnumber">4.1</span> <span class="toctext">localized</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#description"&gt;<span class="tocnumber">4.2</span> <span class="toctext">description</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#creator"&gt;<span class="tocnumber">4.3</span> <span class="toctext">creator</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#developer"&gt;<span class="tocnumber">4.4</span> <span class="toctext">developer</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#translator"&gt;<span class="tocnumber">4.5</span> <span class="toctext">translator</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#contributor"&gt;<span class="tocnumber">4.6</span> <span class="toctext">contributor</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#homepageURL"&gt;<span class="tocnumber">4.7</span> <span class="toctext">homepageURL</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#updateURL"&gt;<span class="tocnumber">4.8</span> <span class="toctext">updateURL</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#updateKey"&gt;<span class="tocnumber">4.9</span> <span class="toctext">updateKey</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#optionsURL"&gt;<span class="tocnumber">4.10</span> <span class="toctext">optionsURL</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#aboutURL"&gt;<span class="tocnumber">4.11</span> <span class="toctext">aboutURL</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#iconURL"&gt;<span class="tocnumber">4.12</span> <span class="toctext">iconURL</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#hidden"&gt;<span class="tocnumber">4.13</span> <span class="toctext">hidden</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#targetPlatform"&gt;<span class="tocnumber">4.14</span> <span class="toctext">targetPlatform</span>&lt;/a&gt;</li>
<li class="toclevel-2">&lt;a href="#requires"&gt;<span class="tocnumber">4.15</span> <span class="toctext">requires</span>&lt;/a&gt;</li>
</ul>
</li>
<li class="toclevel-1">&lt;a href="#Obsolete_Property_Reference"&gt;<span class="tocnumber">5</span> <span class="toctext">Obsolete Property Reference</span>&lt;/a&gt;
<ul>
<li class="toclevel-2">&lt;a href="#file"&gt;<span class="tocnumber">5.1</span> <span class="toctext">file</span>&lt;/a&gt;</li>
</ul>
</li>
<li class="toclevel-1">&lt;a href="#Glossary"&gt;<span class="tocnumber">6</span> <span class="toctext">Glossary</span>&lt;/a&gt;</li>
<li class="toclevel-1">&lt;a href="#restricted_access_area"&gt;<span class="tocnumber">7</span> <span class="toctext">restricted access area</span>&lt;/a&gt;</li>
</ul>
</td></tr></tbody></table>&lt;script type="text/javascript"&gt; if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } &lt;/script&gt;
&lt;a name="Introduction"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D1.22_title.3D.22Edit_section:_Introduction.22.3Eedit.3C.2Fa.3E.5D__Introduction"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=1" title="Edit section: Introduction"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Introduction </span></h3>
<p>An Install Manifest is the file an Addon Manager-enabled XUL application uses to determine information about an addon as it is being installed. It contains metadata identifying the addon, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.
</p><p>The format of the Install Manifest is RDF/XML.
</p><p>The file must be called <code>install.rdf</code> and live at the top level of an addon's XPI file.
</p>
&lt;a name="Layout"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D2.22_title.3D.22Edit_section:_Layout.22.3Eedit.3C.2Fa.3E.5D__Layout"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=2" title="Edit section: Layout"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Layout </span></h3>
<p>The basic layout of an Install Manifest is like so:
</p>
<pre>&lt;?xml version="1.0"?&gt;

&lt;RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:em="http://www.mozilla.org/2004/em-rdf#"&gt;
  &lt;Description about="urn:mozilla:install-manifest"&gt;

    &lt;!-- properties --&gt;
  &lt;/Description&gt;
&lt;/RDF&gt;
</pre>
<p>Some properties are required, some are optional. Some have simple string values, some are complex resources.
</p>
&lt;a name="Required_Property_Reference"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D3.22_title.3D.22Edit_section:_Required_Property_Reference.22.3Eedit.3C.2Fa.3E.5D__Required_Property_Reference"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=3" title="Edit section: Required Property Reference"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Required Property Reference </span></h3>
<p>Your Install Manifest must specify these properties correctly otherwise your addon may not install. 
</p>
&lt;a name="id"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D4.22_title.3D.22Edit_section:_id.22.3Eedit.3C.2Fa.3E.5D__id"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=4" title="Edit section: id"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> id </span></h4>
<p>The id of the extension, which is a:
</p>
<ul><li> GUID (generate using guidgen on Windows, uuidgen on Linux and makeuuid on Solaris) (Firefox 1.0)
</li><li> <span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers"&gt;Firefox 1.5&lt;/a&gt;</span> A string formatted like so: <code>extensionname@organization.tld</code>
</li></ul>
<p>The latter format is significantly easier to generate and manipulate. Firefox 1.5 has checking to ensure that your id falls into one format or the other and will refuse to install addons that have malformed ids. 
</p><p><b>Examples</b>
</p>
<pre>&lt;em:id&gt;myextension@mysite.com&lt;/em:id&gt;

&lt;em:id&gt;{daf44bf7-a45e-4450-979c-91cf07434c3d}&lt;/em:id&gt;
</pre>
&lt;a name="version"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D5.22_title.3D.22Edit_section:_version.22.3Eedit.3C.2Fa.3E.5D__version"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=5" title="Edit section: version"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> version </span></h4>
<p>A version string identifying the version of the addon being supplied.
</p><p>For Firefox/Thundebird 1.0, the format must conform to the rules specified in &lt;a href="/en/docs/Extension_Versioning%2C_Update_and_Compatibility" title="Extension Versioning, Update and Compatibility"&gt;Extension Versioning, Update and Compatibility&lt;/a&gt;. For Firefox/Thundebird 1.5, see &lt;a href="/en/docs/Toolkit_version_format" title="Toolkit version format"&gt;Toolkit version format&lt;/a&gt;.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:version&gt;2.0&lt;/em:version&gt;

&lt;em:version&gt;1.0.2&lt;/em:version&gt;

&lt;em:version&gt;0.4.1.2005090112&lt;/em:version&gt;

</pre>
<p><b>Firefox 1.5 / XULRunner 1.8</b> - addons that do not use a valid version format will not be installed. The version format is different from, although backwards-compatible with, 1.0's.
</p><p><b>For addons hosted on addons.mozilla.org</b> - Mozilla's update website may repackage your addon and correct or reject malformed version strings.
</p>
&lt;a name="type"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D6.22_title.3D.22Edit_section:_type.22.3Eedit.3C.2Fa.3E.5D__type"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=6" title="Edit section: type"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> type </span></h4>
<p>An integer value representing the type of addon. 
</p>
<table>
 <tbody><tr><td>2</td><td>Extensions</td></tr>
 <tr><td>4</td><td>Themes</td></tr>
 <tr><td>8</td><td>Locale</td></tr>
 <tr><td>32</td><td>&lt;a href="/en/docs/Multiple_Item_Packaging" title="Multiple Item Packaging"&gt;Multiple Item Package&lt;/a&gt;</td></tr>
</tbody></table>
<p><b>Examples</b>
</p>
<pre>&lt;em:type&gt;2&lt;/em:type&gt;
</pre>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers"&gt;Firefox 1.5&lt;/a&gt;</span> This property was added for Firefox 1.5, and is only required for addon types other than Extensions and Themes.
</p><p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers"&gt;Firefox 3&lt;/a&gt;</span> Firefox 2 and previous supported a value of 16 to represent plugins. In Firefox 3 this has been removed.
</p>
&lt;a name="targetApplication"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D7.22_title.3D.22Edit_section:_targetApplication.22.3Eedit.3C.2Fa.3E.5D__targetApplication"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=7" title="Edit section: targetApplication"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> targetApplication </span></h4>
<p>An object specifying an application targeted by this addon. This means that the addon will work with the application identified by the id property (<code>&lt;em:id&gt;</code>) specified (for a comprehensive list of application IDs see &lt;a href="https://addons.mozilla.org/en-US/firefox/pages/appversions" class="external text" title="https://addons.mozilla.org/en-US/firefox/pages/appversions" rel="nofollow"&gt;Valid application versions for add-on developers&lt;/a&gt;), from the minimum version (<code>&lt;em:minVersion&gt;</code>) up to and including the maximum version (<code>&lt;em:maxVersion&gt;</code>). These version strings are formatted in the same fashion as the &lt;a href="#version" title=""&gt;<code>version</code> property&lt;/a&gt; and will be compared to the application version; this allows the extension author to specify which versions of Firefox an extension has been tested with.

</p><p>Note: Firefox 1.0-1.0.6 all have an application version of <code>1.0</code>. Security and stability updates of Firefox 1.5 have application version 1.5.0.1, 1.5.0.2, etc. Extensions compatible with Firefox or Thunderbird 1.5 should specify a maxVersion of 1.5.0.*, so that they are automatically compatible with security and stability updates.
</p><p>Extensions compatible with Firefox 2 should specify a <code>maxVersion</code> of <code>2.0.0.*</code>
</p><p>The Install Manifest must specify at least one of these objects, and may specify more if the addon targets multiple applications that support the Addon Manager (e.g. Firefox and Thunderbird)
</p><p><b>Examples</b>
</p>
<pre>&lt;em:targetApplication&gt;
 &lt;Description&gt;

  &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt; 
  &lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;
  &lt;em:maxVersion&gt;2.0.0.*&lt;/em:maxVersion&gt;
 &lt;/Description&gt;

&lt;/em:targetApplication&gt;
</pre>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers"&gt;Firefox 3&lt;/a&gt;</span> Gecko 1.9 based applications allow you to use the special targetApplication id <code>toolkit@mozilla.org</code> to say that the add-on is compatible with any toolkit app with a toolkit version matching the minVersion and maxVersion.
</p>
&lt;a name="name"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D8.22_title.3D.22Edit_section:_name.22.3Eedit.3C.2Fa.3E.5D__name"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=8" title="Edit section: name"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> name </span></h4>
<p>The name of the addon- intended for display in the UI.
</p><p><b> Examples </b>
</p>
<pre>&lt;em:name&gt;My Extension&lt;/em:name&gt;
</pre>
&lt;a name="Optional_Property_Reference"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D9.22_title.3D.22Edit_section:_Optional_Property_Reference.22.3Eedit.3C.2Fa.3E.5D__Optional_Property_Reference"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=9" title="Edit section: Optional Property Reference"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Optional Property Reference </span></h3>
<p>You may need to supply these properties, depending on the capabilities of your add-on.
</p>
&lt;a name="localized"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D10.22_title.3D.22Edit_section:_localized.22.3Eedit.3C.2Fa.3E.5D__localized"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=10" title="Edit section: localized"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> localized </span></h4>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers"&gt;Firefox 3&lt;/a&gt;</span> Allows you to localize the add-on's name, description, contributors and other metadata. The localized description must specify at least one <code>em:locale</code> which indicates which locales to use this information for.
</p><p><b>Examples</b>
</p><p>This declares a set of add-on metadata to be displayed when the application is running in the de-DE locale.
</p>
<pre>&lt;em:localized&gt;
  &lt;Description&gt;
    &lt;em:locale&gt;de-DE&lt;/em:locale&gt;
    &lt;em:name&gt;Tab Sidebar&lt;/em:name&gt;

    &lt;em:description&gt;Zeigt in einer Sidebar Vorschaubilder der Inhalte aller offenen Tabs an.&lt;/em:description&gt;
  &lt;/Description&gt;
&lt;/em:localized&gt;
</pre>
<p>The following properties which are described elsewhere in this page can be included in the localized property:
</p>
<ul><li> name
</li><li> description
</li><li> creator
</li><li> homepageURL
</li><li> developer
</li><li> translator
</li><li> contributor
</li></ul>
<p>More documentation can be found at &lt;a href="/en/docs/Localizing_extension_descriptions" title="Localizing extension descriptions"&gt;Localizing extension descriptions&lt;/a&gt;.
</p>
&lt;a name="description"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D11.22_title.3D.22Edit_section:_description.22.3Eedit.3C.2Fa.3E.5D__description"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=11" title="Edit section: description"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> description </span></h4>
<p>A short description of the add-on - intended for display in the user interface. This description should fit on one short line of text.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:description&gt;Advanced foo tools.&lt;/em:description&gt;
</pre>
&lt;a name="creator"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D12.22_title.3D.22Edit_section:_creator.22.3Eedit.3C.2Fa.3E.5D__creator"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=12" title="Edit section: creator"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> creator </span></h4>
<p>The name of the creator/principal developer - intended for display in the user interface.

</p><p><b>Examples</b>
</p>
<pre>&lt;em:creator&gt;John Doe&lt;/em:creator&gt;
</pre>
<p>or
</p>
<pre>&lt;em:creator&gt;CoolExtension Team&lt;/em:creator&gt;
</pre>
&lt;a name="developer"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D13.22_title.3D.22Edit_section:_developer.22.3Eedit.3C.2Fa.3E.5D__developer"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=13" title="Edit section: developer"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> developer </span></h4>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers"&gt;Firefox 2&lt;/a&gt;</span> The name(s) of co-developers. You may specify more than one of this value to specify multiple developers.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:developer&gt;Krunal&lt;/em:developer&gt;
&lt;em:developer&gt;Billimoria&lt;/em:developer&gt;
</pre>
&lt;a name="translator"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D14.22_title.3D.22Edit_section:_translator.22.3Eedit.3C.2Fa.3E.5D__translator"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=14" title="Edit section: translator"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> translator </span></h4>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers"&gt;Firefox 2&lt;/a&gt;</span> The name(s) of translators. You may specify more than one of this value to specify multiple translators.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:translator&gt;Janez Novak&lt;/em:translator&gt;
&lt;em:translator&gt;Kari Nordmann&lt;/em:translator&gt;
</pre>
&lt;a name="contributor"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D15.22_title.3D.22Edit_section:_contributor.22.3Eedit.3C.2Fa.3E.5D__contributor"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=15" title="Edit section: contributor"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> contributor </span></h4>
<p>The name(s) of additional contributors. You may specify more than one of this value to specify multiple contributors. 
</p><p><b>Examples</b>
</p>
<pre>&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;

&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
&lt;em:contributor&gt;Jane Doe&lt;/em:contributor&gt;

&lt;em:contributor&gt;Elvis Presley&lt;/em:contributor&gt;
</pre>
&lt;a name="homepageURL"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D16.22_title.3D.22Edit_section:_homepageURL.22.3Eedit.3C.2Fa.3E.5D__homepageURL"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=16" title="Edit section: homepageURL"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> homepageURL </span></h4>
<p>A link to the addon's home page - intended for display in the user interface.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:homepageURL&gt;http://www.foo.com/&lt;/em:homepageURL&gt;

</pre>
&lt;a name="updateURL"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D17.22_title.3D.22Edit_section:_updateURL.22.3Eedit.3C.2Fa.3E.5D__updateURL"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=17" title="Edit section: updateURL"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> updateURL </span></h4>
<p>A link to a custom Update Manifest file that specifies available updates to the addon. The format is described below. If enabled, the addon manager periodically checks with this Manifest file to determine if newer versions are available. 
</p>
<div class="warning"><b>Warning:</b> It is strongly recommended that the <code>updateURL</code> be an HTTPS (secure) link.  Non-secure update URLs can be hijacked by a malicious <code>update.rdf</code> file, enabling malware to infiltrate the user's computer.  Alternatively, you could host your extension on &lt;a href="http://addons.mozilla.org" class="external text" title="http://addons.mozilla.org" rel="nofollow"&gt;AMO&lt;/a&gt; and leave out the <code>updateURL</code> completely.  This provides secure updates automatically.</div>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers"&gt;Firefox 3&lt;/a&gt;</span> Gecko 1.9 applications require that if you specify an updateURL it must be a https url, or you must include an &lt;a href="#updateKey" title=""&gt;updateKey&lt;/a&gt; for security reasons.
</p><p>Your server must send this file as <code>text/rdf</code> or the update checker will not work. <code>text/xml</code> also seems to work (projects on mozdev.org)
</p><p>The addon manager will substitute the following values into this URL in case you wish to generate the response RDF dynamically, such as using PHP or CGI:
</p>
<table border="1" cellpadding="3" cellspacing="2">

 <tbody><tr><td><code>%REQ_VERSION%</code></td><td>The version of the request. Currently 1</td></tr>
 <tr><td><code>%ITEM_ID%</code></td><td>The <code>id</code> of the addon being updated</td></tr>
 <tr><td><code>%ITEM_VERSION%</code></td><td>The <code>version</code> of the addon being updated</td></tr>
 <tr><td><code>%ITEM_MAXAPPVERSION%</code></td><td>The <code>maxVersion</code> of the <code>targetApplication</code> object corresponding to the current application for the addon being updated.</td></tr>
 <tr><td><code>%ITEM_STATUS%</code></td><td><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers"&gt;Firefox 2&lt;/a&gt;</span> Comma separated list of the add-ons operating status in the application. Contains at the least either <code>userEnabled</code> or <code>userDisabled</code> plus any number of <code>incompatible</code>, <code>blockslisted</code> or <code>needsDependencies</code>.</td></tr>
 <tr><td><code>%APP_ID%</code></td><td>The <code>id</code> of the current application</td></tr>
 <tr><td><code>%APP_VERSION%</code></td><td>The <code>version</code> of the current application</td></tr>
 <tr><td><code>%APP_OS%</code></td><td><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers"&gt;Firefox 1.5&lt;/a&gt;</span> The value of <code>OS_TARGET</code> from the Firefox build system, identifying the operating system being used.</td></tr>
 <tr><td><code>%APP_ABI%</code></td><td><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers"&gt;Firefox 1.5&lt;/a&gt;</span> The value of the <code>TARGET_XPCOM_ABI</code> value from the Firefox build system, identifying the compiler/architecture combination used to compile the current application.</td></tr>
</tbody></table>
<p><b>Examples</b>
</p>
<pre>&lt;em:updateURL&gt;http://www.foo.com/update.cgi?id=%ITEM_ID%&amp;amp;version=%ITEM_VERSION%&lt;/em:updateURL&gt;

&lt;em:updateURL&gt;http://www.foo.com/extension/windows.rdf&lt;/em:updateURL&gt;
</pre>
<p><b>For addons hosted on addons.mozilla.org:</b> You may not specify an updateURL property. By default, Mozilla applications using the Addon Manager (such as Firefox and Thunderbird) will send update requests to <code>addons.mozilla.org</code> using the default web service. Every time you upload a new version of your addon or change its compatibility parameters through the author interface, your update manifest will be generated automatically.
</p><p><b>Format of the Update Manifest:</b> The Update Manifest is a RDF/XML datasource. For examples of an update manifest, see &lt;a href="/en/docs/Extension_Versioning%2C_Update_and_Compatibility#Update_RDF_Format" title="Extension Versioning, Update and Compatibility"&gt;Extension Versioning, Update and Compatibility&lt;/a&gt; and &lt;a href="/en/docs/Enabling_Extension_Updates_%28external%29" title="Enabling Extension Updates (external)"&gt;Enabling Extension Updates (external)&lt;/a&gt;.
</p>
&lt;a name="updateKey"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D18.22_title.3D.22Edit_section:_updateKey.22.3Eedit.3C.2Fa.3E.5D__updateKey"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=18" title="Edit section: updateKey"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> updateKey </span></h4>
<div style="border: 1px solid #818151; background-color: #FFFFE1; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"><p style="margin: 4px 0px 4px 0px;">Introduced in Gecko 1.9</p></div>
<div style="border: 1px solid #818151; background-color: #FFFFE1; font-weight: bold; text-align: center; padding: 0px 10px 0px 10px; margin: 10px 0px 10px 0px;"><p style="margin: 4px 0px 4px 0px;">This article covers features introduced in &lt;a href="/en/docs/Firefox_3_for_developers" title="Firefox 3 for developers"&gt;Firefox 3&lt;/a&gt;</p></div>
<p><br>
To ensure the security of update rdf data that is retrieved over plain http you must use a digital signature to verify the contents of the data. In order to do so you must include the public part of the cryptographic key in an updateKey entry in the install.rdf of the add-on. This can be generated using the &lt;a href="/en/docs/McCoy" title="McCoy"&gt;McCoy&lt;/a&gt; tool. Any line breaks and whitespace as part of this entry are ignored.

</p><p><b>Examples</b>
</p>
<pre> &lt;em:updateKey&gt;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj
               Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD
               NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J63wBixIeCxmysf
               awB/zH4KaPiY3vnrzQIDAQAB&lt;/em:updateKey&gt;
</pre>
&lt;a name="optionsURL"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D19.22_title.3D.22Edit_section:_optionsURL.22.3Eedit.3C.2Fa.3E.5D__optionsURL"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=19" title="Edit section: optionsURL"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> optionsURL </span></h4>
<p>The <code>chrome://</code> URL of the extension's options dialog box. This is not useful to extensions. i repeat, This is not useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the Options button is enabled and will show this.

</p><p><b>Examples</b>
</p>
<pre>&lt;em:optionsURL&gt;chrome://myext/content/options.xul&lt;/em:optionsURL&gt;
</pre>
&lt;a name="aboutURL"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D20.22_title.3D.22Edit_section:_aboutURL.22.3Eedit.3C.2Fa.3E.5D__aboutURL"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=20" title="Edit section: aboutURL"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> aboutURL </span></h4>
<p>The <code>chrome://</code> URL of the extension's about dialog box. This is only useful to extensions. If this property is specified, when the extension is selected in the Extensions list, the About... link in the extension's context menu will show this dialog, rather than the default.

</p><p><b>Examples</b>
</p>
<pre>&lt;em:aboutURL&gt;chrome://myext/content/about.xul&lt;/em:aboutURL&gt;
</pre>
&lt;a name="iconURL"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D21.22_title.3D.22Edit_section:_iconURL.22.3Eedit.3C.2Fa.3E.5D__iconURL"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=21" title="Edit section: iconURL"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> iconURL </span></h4>
<p>A <code>chrome://</code> URL to a 32x32 icon to display in the addons list. If this property is not specified, a default icon is used. 

</p>
<pre>&lt;em:iconURL&gt;chrome://myext/skin/icon.png&lt;/em:iconURL&gt;
</pre>
<p>Note: <em>For the above example to work you will also have to add a <code>skin package</code> line to your <code>chrome.manifest</code> file. See &lt;a href="/en/docs/Chrome_Registration#skin" title="Chrome Registration"&gt;Chrome Registration#skin&lt;/a&gt;.</em> Alternatively you can place your icon in the directory specified in your <code>content package</code> line.

</p>
&lt;a name="hidden"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D22.22_title.3D.22Edit_section:_hidden.22.3Eedit.3C.2Fa.3E.5D__hidden"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=22" title="Edit section: hidden"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> hidden </span></h4>
<p>A boolean value that when <code>true</code> makes the add-on not show up in the add-ons list, provided the add-on is installed in a &lt;a href="#restricted_access_area" title=""&gt;restricted access area&lt;/a&gt; (so it does not work for add-ons installed in the profile). This is for bundling integration hooks to larger applications where having an entry in the Extensions list does not make sense.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:hidden&gt;true&lt;/em:hidden&gt;
</pre>
&lt;a name="targetPlatform"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D23.22_title.3D.22Edit_section:_targetPlatform.22.3Eedit.3C.2Fa.3E.5D__targetPlatform"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=23" title="Edit section: targetPlatform"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> targetPlatform </span></h4>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_1.5_for_developers" title="Firefox 1.5 for developers"&gt;Firefox 1.5&lt;/a&gt;</span> A string specifying a platform that the addon supports. It contains either the value of OS_TARGET alone or combined with &lt;a href="/en/docs/XPCOM_ABI" title="XPCOM ABI"&gt;TARGET_XPCOM_ABI&lt;/a&gt;, separated by an underscore (_).

</p><p>OS_TARGET is typically the output of the 'uname -s' command on the target platform, e.g.:
</p>
<ul><li> <code>WINNT</code> for Windows NT, 2000, XP and later
</li><li> <code>Linux</code> for all Linux versions
</li><li> <code>Darwin</code> for all MacOS X versions
</li><li> <code>SunOS</code> for all Solaris versions
</li></ul>
<p>You can specify multiple targetPlatform properties per manifest. If any value matches the application's build parameters, it will be installed; if not, the user will get an appropriate error message.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:targetPlatform&gt;WINNT_x86-msvc&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;Linux&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;Darwin_ppc-gcc3&lt;/em:targetPlatform&gt;

&lt;em:targetPlatform&gt;SunOS_sparc-sunc&lt;/em:targetPlatform&gt;
</pre>
<p>Usually, you would use only the OS part for themes or for extensions that are not fully cross-platform. For extensions including binary (compiled) components, you should never use the OS alone, but include the &lt;a href="/en/docs/XPCOM_ABI" title="XPCOM ABI"&gt;ABI (s)&lt;/a&gt; that you compiled the components with. If you want to include multiple versions of the components, you should also use &lt;a href="/en/docs/Bundles#Platform-specific_Subdirectories" title="Bundles"&gt;Platform-specific Subdirectories&lt;/a&gt;.
</p><p><b>Notes</b>
</p>
<ul><li> In the same manifest file, you could even mix values with and without ABI. If a value for the application's OS is encountered that requires any specific ABI, the ABI is considered important for that OS and the application will refuse to install the addon if it does not find a matching OS/ABI combination. This means that if all of the above examples would occur in one manifest, the addon will install on any Linux build of the application, regardless of its ABI, but not on a Windows Cygwin build.

</li></ul>
<ul><li> There may be builds of Firefox and Thunderbird which do not "know" their ABI (most likely ports to rare platforms, or non-official builds). These builds will refuse to install any addon that requires a specific ABI for their platform.
</li></ul>
<p>This property was added for Firefox/Thunderbird 1.5. Previous versions of these applications will ignore the restrictions and install the addon regardless of the platform.
</p>
&lt;a name="requires"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D24.22_title.3D.22Edit_section:_requires.22.3Eedit.3C.2Fa.3E.5D__requires"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=24" title="Edit section: requires"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> requires </span></h4>
<p><span style="border: 1px solid #818151; background-color: #FFFFE1; font-size: 9px; vertical-align: text-top;">New in &lt;a href="/en/docs/Firefox_2_for_developers" title="Firefox 2 for developers"&gt;Firefox 2&lt;/a&gt;</span> This tag has a similar syntax to the <code>&lt;em:targetApplication&gt;</code> tag. If the addon specified by the <code>&lt;em:id&gt;</code> tag is not installed or has an incompatible version, the extension manager will disable your extension and show the message "Requires additional items". You can add as many <code>&lt;em:requires&gt;</code> tags as you like. Your extension will be disabled if any of the specified requirements fail.

</p><p><b>Example</b>
</p>
<pre>&lt;em:requires&gt;
   &lt;Description&gt;
     &lt;!-- Lightning --&gt;
     &lt;em:id&gt;{e2fda1a4-762b-4020-b5ad-a41df1933103}&lt;/em:id&gt;

     &lt;em:minVersion&gt;0.5pre&lt;/em:minVersion&gt;
     &lt;em:maxVersion&gt;0.5pre&lt;/em:maxVersion&gt;
   &lt;/Description&gt;
 &lt;/em:requires&gt;
</pre>
<p><b>Notes</b>
</p>
<ul><li> Currently, only <code>&lt;em:id&gt;</code>, <code>&lt;em:minVersion&gt;</code>, <code>&lt;em:maxVersion&gt;</code> are parsed inside the <code>&lt;em:requires&gt;</code> tag.
</li><li> It is not currently possible to add dependencies that are specific to a <code>&lt;em:targetApplication&gt;</code>. See &lt;a href="http://wiki.mozilla.org/Extension_Manager:Extension_Dependencies" class="extiw" title="wikimo:Extension_Manager:Extension_Dependencies"&gt;wikimo:Extension Manager:Extension Dependencies&lt;/a&gt; for more details.
</li></ul>
<p>This property was added for Firefox/Thunderbird 2. Previous versions of these applications will ignore the restrictions and install the addon regardless of the requirements.
</p>
&lt;a name="Obsolete_Property_Reference"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D25.22_title.3D.22Edit_section:_Obsolete_Property_Reference.22.3Eedit.3C.2Fa.3E.5D__Obsolete_Property_Reference"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=25" title="Edit section: Obsolete Property Reference"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Obsolete Property Reference </span></h3>
<p>These properties were required in older versions of the Addon Manager, but have been replaced with newer and better mechanisms.
</p>
&lt;a name="file"&gt;&lt;/a&gt;<h4 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D26.22_title.3D.22Edit_section:_file.22.3Eedit.3C.2Fa.3E.5D__file"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=26" title="Edit section: file"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> file </span></h4>
<p><b>Firefox 1.0</b> This property pointed to a chrome <code>.jar</code> file that contains chrome packages that require registration with the Chrome Registry.
</p><p>The <code>&lt;em:file&gt;</code> property has a complex object value. The uri of the value is <code>urn:mozilla:extension:file:jarFile.jar</code> where <code>jarFile.jar</code> is the name of the jar file that contains the chrome package's files. This could also be the name of a directory that contains the chrome package's files, un-jarred (e.g. <code>urn:mozilla:extension:file:directory</code>). In either case, the referenced chrome package file(s) must be placed in the <code>chrome</code> subdirectory of the XPI's top level.
</p><p>This object has a <code>package</code> property (with a path within the jar file or directory that leads to the location where the <code>contents.rdf</code> file responsible for registering that package is located), a <code>locale</code> property (ditto, but to register the locale) and a <code>skin</code> property (ditto, but to register the theme material).
</p><p>In extensions for Firefox 1.5, this property is no longer necessary: the <code>&lt;a href="/en/docs/Chrome_Registration" title="Chrome Registration"&gt;chrome.manifest&lt;/a&gt;</code> at the top level of the XPI is used to locate chrome to register. If there is no chrome.manifest, this property is still read by the Addon Manager and a chrome.manifest is generated from old-style contents.rdf.
</p><p><b>Examples</b>
</p>
<pre>&lt;em:file&gt;
 &lt;Description about="urn:mozilla:extension:file:myext.jar"&gt;
  &lt;em:package&gt;content/myext/&lt;/em:package&gt;
  &lt;em:locale&gt;locale/en-US/myext/&lt;/em:locale&gt;

  &lt;em:skin&gt;skin/classic/myext/&lt;em:skin&gt;
 &lt;/Description&gt;
&lt;/em:file&gt;
</pre>
<p>An Install Manifest may specify multiple <code>file</code> properties, one for each jar file or subdirectory that contains chrome to register.
</p>
&lt;a name="Glossary"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D27.22_title.3D.22Edit_section:_Glossary.22.3Eedit.3C.2Fa.3E.5D__Glossary"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=27" title="Edit section: Glossary"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> Glossary </span></h3>
&lt;a name="restricted_access_area"&gt;&lt;/a&gt;<h3 name=".5B.3Ca_href.3D.22.2Fen.2Fdocs.2Findex.php.3Ftitle.3DInstall_Manifests&amp;action.3Dedit&amp;section.3D28.22_title.3D.22Edit_section:_restricted_access_area.22.3Eedit.3C.2Fa.3E.5D__restricted_access_area"><span class="editsection">[&lt;a href="/en/docs/index.php?title=Install_Manifests&amp;action=edit&amp;section=28" title="Edit section: restricted access area"&gt;edit&lt;/a&gt;]</span> <span class="mw-headline"> restricted access area </span></h3>
<p>A <i>restricted access area</i> is an install location that could be restricted on a restricted-access account, regardless of whether or not the location is restricted with the current user privileges (see &lt;a href="http://mxr.mozilla.org/mozilla/source/toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80" class="external text" title="http://mxr.mozilla.org/mozilla/source/toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80" rel="nofollow"&gt;nsIInstallLocation::restricted&lt;/a&gt; ). Currently, the <code>($APPDIR)/extensions</code> folder and the registry install location under <code>HKEY_LOCAL_MACHINE</code> (see &lt;a href="/en/docs/Adding_Extensions_using_the_Windows_Registry" title="Adding Extensions using the Windows Registry"&gt;Adding Extensions using the Windows Registry&lt;/a&gt; for details) are restricted.

</p><p>The <code>($PROFILE)/extensions</code> and <code>HKEY_CURRENT_USER</code> install locations, on the other hand, are not restricted.
</p><span class="comment">Pre-expand include size: 11176 bytes Post-expand include size: 3380 bytes Template argument size: 293 bytes Maximum: 2097152 bytes</span>
<p><span class="comment">Saved in parser cache with key wiki_mdc-mediawiki:pcache:idhash:3655-0!1!0!!en!2 and timestamp 20070928004631</span>
</p>
<div class="printfooter">
Retrieved from "&lt;a href="http://developer.mozilla.org/en/docs/Install_Manifests"&gt;http://developer.mozilla.org/en/docs/Install_Manifests&lt;/a&gt;"</div>
				<div id="catlinks"><p class="catlinks">&lt;a href="/en/docs/Special:Categories" title="Special:Categories"&gt;Categories&lt;/a&gt;: <span dir="ltr">&lt;a href="/en/docs/Category:Extensions" title="Category:Extensions"&gt;Extensions&lt;/a&gt;</span> | <span dir="ltr">&lt;a href="/en/docs/Category:Toolkit_API" title="Category:Toolkit API"&gt;Toolkit API&lt;/a&gt;</span></p></div>		
		</div>
	</div> <span class="comment">end id content</span>
<p><br>
</p>
      <div id="footer">
		<ul>
	  		<li id="f-lastmod"> This page was last modified 23:44, 27 September 2007.</li>	  		<li id="f-viewcount">This page has been accessed 112,038 times.</li>		</ul>
		<ul>

	  			  			  		<li id="f-copyright">Content is available under &lt;a href="/en/docs/MDC:Copyrights" title="MDC:Copyrights"&gt;these licenses&lt;/a&gt;.</li>	  		<li id="f-about">&lt;a href="/en/docs/MDC:About" title="MDC:About"&gt;About MDC&lt;/a&gt;</li>	  				</ul>
	  </div>
    </div> <span class="comment">end id page</span>
	</div> <span class="comment">end id container</span>
<pre class="eval">   <span class="comment">Served by mrapp53 in 3.724 secs.</span>  &lt;/body&gt;
</pre>
<p>&lt;/html&gt;
</p>
<h3 name="restricted_access_area"> restricted access area </h3>
<p>A <i>restricted access area</i> is an install location that could be restricted on a restricted-access account, regardless of whether or not the location is restricted with the current user privileges (see {{template.Source("toolkit/mozapps/extensions/public/nsIExtensionManager.idl#80", "nsIInstallLocation::restricted")}}). Currently, the <code>($APPDIR)/extensions</code> folder and the registry install location under <code>HKEY_LOCAL_MACHINE</code> (see <a href="en/Adding_Extensions_using_the_Windows_Registry">Adding Extensions using the Windows Registry</a> for details) are restricted.
</p><p>The <code>($PROFILE)/extensions</code> and <code>HKEY_CURRENT_USER</code> install locations, on the other hand, are not restricted.
</p><p><br>
</p>
<div class="noinclude">
</div>
{{ wiki.languages( { "es": "es/Instalar_el_manifest", "fr": "fr/Manifestes_d\'installation", "ja": "ja/Install_Manifests", "pl": "pl/Manifesty_Instalacji" } ) }}
Revert to this revision