mozilla

Compare Revisions

Bản Kê Khai Cài Đặt

Change Revisions

Revision 288924:

Revision 288924 by kimkha on

Revision 220298:

Revision 220298 by kimkha on

Title:
Bản Kê Khai Cài Đặt
Bản Kê Khai Cài Đặt
Slug:
Bản_Kê_Khai_Cài_Đặt
Bản_Kê_Khai_Cài_Đặt
Content:

Revision 288924
Revision 220298
t7    <h3 id="Gi.E1.BB.9Bi_Thi.E1.BB.87u">t
8      Giới Thiệu
9    </h3>
10    <p>
11      Một Bản Kê Khai Cài Đặt (Install Manifest) là một tập tin m
>à một ứng dụng XUL - được bật mở trình Quản lý Tiện ích - sử dụng 
> để xác định các thông tin về tiện ích khi nó được cài đặt. Nó ch 
>ứa các siêu dữ liệu (metadata) để nhận diện tiện ích, cung cấp th 
>ông tin về người đã tạo ra nó, nơi mà các thông thêm về nó có thể 
> được tìm thấy, các phiên bản nào của ứng dụng nào mà nó tương th 
>ích, làm sao để nó luôn được cập nhật, và nhiều thứ khác. 
12    </p>
13    <p>
14      Định dạng của Bản Kê Khai Cài Đặt là RDF/XML.
15    </p>
16    <p>
17      Tập tin này phải được đặt tên là <code>install.rdf</code> v
>à luôn có ở cấp cao nhất trong tập tin XPI của tiện ích. 
18    </p>
19    <h3 id="B.E1.BB.91_C.E1.BB.A5c">
20      Bố Cục
21    </h3>
22    <p>
23      Bố cục cơ bản của một Bản Kê Khai Cài Đặt tương tự như sau:
24    </p>
25    <pre class="eval">
26&lt;?xml version="1.0"?&gt;
27 
28&lt;RDF xmlns="<span class="nowiki">http://www.w3.org/1999/02/22-
>rdf-syntax-ns#</span>" 
29     xmlns:em="<span class="nowiki">http://www.mozilla.org/2004/e
>m-rdf#</span>"&gt; 
30  &lt;Description about="urn:mozilla:install-manifest"&gt;
31    &lt;!-- các thuộc tính --&gt;
32  &lt;/Description&gt;
33&lt;/RDF&gt;
34</pre>
35    <p>
36      Một số thuộc tính là bắt buộc, số khác là tùy chọn. Một số 
>cái chỉ có giá trị chuỗi đơn giản, số khác lại là tài nguyên phức 
> tạp. 
37    </p>
38    <h3 id="Required_Property_Reference" name="Required_Property_
>Reference"> 
39      Các Thuộc Tính Bắt Buộc
40    </h3>
41    <p>
42      Bản Kê Khai Cài Đặt phải đặc tả những thuộc tính này một cá
>ch chính xác nếu không tiện ích của bạn có lẽ sẽ không được cài. 
43    </p>
44    <h4 id="id" name="id">
45      id
46    </h4>
47    <p>
48      Định danh (id) của phần mở rộng, nó là một:
49    </p>
50    <ul>
51      <li>
52        <a href="/en/Generating_GUIDs" title="en/Generating_GUIDs
>">GUID</a> (Firefox 1.0) 
53      </li>
54      <li>{{ Fx_minversion_inline(1.5) }} Một chuỗi định dạng giố
>ng như: <code class="plain">extensionname@organization.tld</code> 
55      </li>
56    </ul>
57    <p>
58      The latter format is significantly easier to generate and m
>anipulate. Firefox 1.5 has checking to ensure that your id falls  
>into one format or the other and will refuse to install addons th 
>at have malformed ids. 
59    </p>
60    <p>
61      <strong>Examples</strong>
62    </p>
63    <pre class="eval">
64&lt;em:id&gt;<a class=" link-mailto" href="mailto:myextension@mys
>ite.com" rel="freelink">myextension@mysite.com</a>&lt;/em:id&gt; 
65 
66&lt;em:id&gt;{daf44bf7-a45e-4450-979c-91cf07434c3d}&lt;/em:id&gt;
67</pre>
68    <h4 id="version" name="version">
69      version
70    </h4>
71    <p>
72      A version string identifying the version of the addon being
> supplied. 
73    </p>
74    <p>
75      For Firefox/Thundebird 1.0, the format must conform to the 
>rules specified in <a href="/en/Extension_Versioning,_Update_and_ 
>Compatibility" title="en/Extension_Versioning,_Update_and_Compati 
>bility">Extension Versioning, Update and Compatibility</a>. For F 
>irefox/Thundebird 1.5, see <a href="/en/Toolkit_version_format" t 
>itle="en/Toolkit_version_format">Toolkit version format</a>. 
76    </p>
77    <p>
78      <strong>Examples</strong>
79    </p>
80    <pre class="eval">
81&lt;em:version&gt;2.0&lt;/em:version&gt;
82 
83&lt;em:version&gt;1.0.2&lt;/em:version&gt;
84 
85&lt;em:version&gt;0.4.1.2005090112&lt;/em:version&gt;
86</pre>
87    <p>
88      <strong>Firefox 1.5 / XULRunner 1.8</strong> - addons that 
>do not use a valid version format will not be installed. The vers 
>ion format is different from, although backwards-compatible with, 
> 1.0's. 
89    </p>
90    <p>
91      <strong>For addons hosted on addons.mozilla.org</strong> - 
>Mozilla's update website may repackage your addon and correct or  
>reject malformed version strings. 
92    </p>
93    <h4 id="type" name="type">
94      type
95    </h4>
96    <p>
97      An integer value representing the type of addon.
98    </p>
99    <table>
100      <tbody>
101        <tr>
102          <td>
103            2
104          </td>
105          <td>
106            Extensions
107          </td>
108        </tr>
109        <tr>
110          <td>
111            4
112          </td>
113          <td>
114            Themes
115          </td>
116        </tr>
117        <tr>
118          <td>
119            8
120          </td>
121          <td>
122            Locale
123          </td>
124        </tr>
125        <tr>
126          <td>
127            32
128          </td>
129          <td>
130            <a href="/en/Multiple_Item_Packaging" title="en/Multi
>ple_Item_Packaging">Multiple Item Package</a> 
131          </td>
132        </tr>
133      </tbody>
134    </table>
135    <p>
136      <strong>Examples</strong>
137    </p>
138    <pre class="eval">
139&lt;em:type&gt;2&lt;/em:type&gt;
140</pre>
141    <p>
142      {{ Fx_minversion_inline(1.5) }} This property was added for
> Firefox 1.5, and is only required for addon types other than Ext 
>ensions and Themes. 
143    </p>
144    <p>
145      {{ Fx_minversion_inline(3) }} Firefox 2 and previous suppor
>ted a value of 16 to represent plug-ins. In Firefox 3 this has be 
>en removed. 
146    </p>
147    <h4 id="targetApplication" name="targetApplication">
148      targetApplication
149    </h4>
150    <p>
151      An object specifying an application targeted by this addon.
> This means that the addon will work with the application identif 
>ied by the id property (<code>&lt;em:id&gt;</code>) specified (fo 
>r a comprehensive list of application IDs and valid min/maxVersio 
>ns for them see <a class="link-https" href="https://addons.mozill 
>a.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>ver 
>sion</code> property</a> and will be compared to the application  
>version; this allows the extension author to specify which versio 
>ns of Firefox an extension has been tested with. 
152    </p>
153    <div class="note">
154      Extensions compatible with Firefox 3.5 should specify a <co
>de>maxVersion</code> of <code>3.5.*</code>, so that they are auto 
>matically compatible with security and stability updates. For Fir 
>efox 3.0, a <code>maxVersion</code> of <code>3.0.*</code> should  
>be used. Extensions compatible only with Firefox or Thunderbird 2 
> should specify a <code>maxVersion</code> of <code>2.0.0.*</code> 
>. 
155    </div>
156    <p>
157      The Install Manifest must specify at least one of these obj
>ects, and may specify more if the addon targets multiple applicat 
>ions that support the Add-on Manager (e.g. Firefox and Thunderbir 
>d) 
158    </p>
159    <p>
160      <strong>Examples</strong>
161    </p>
162    <pre class="eval">
163&lt;em:targetApplication&gt;
164 &lt;Description&gt;
165  &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&g
>t; <span class="comment">Firefox</span> 
166  &lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;
167  &lt;em:maxVersion&gt;3.0.*&lt;/em:maxVersion&gt;
168 &lt;/Description&gt;
169&lt;/em:targetApplication&gt;
170</pre>
171    <p>
172      {{ Fx_minversion_inline(3) }} Gecko 1.9 based applications 
>allow you to use the special <code>targetApplication</code> id <c 
>ode class="plain">toolkit@mozilla.org</code> to say that the add- 
>on is compatible with any toolkit app with a toolkit version matc 
>hing the <code>minVersion</code> and <code>maxVersion</code>. 
173    </p>
174    <h4 id="name" name="name">
175      name
176    </h4>
177    <p>
178      The name of the add-on; intended for display in the UI.
179    </p>
180    <p>
181      <strong>Examples</strong>
182    </p>
183    <pre class="eval">
184&lt;em:name&gt;My Extension&lt;/em:name&gt;
185</pre>
186    <h3 id="Optional_Property_Reference" name="Optional_Property_
>Reference"> 
187      Optional Property Reference
188    </h3>
189    <p>
190      You may need to supply these properties, depending on the c
>apabilities of your add-on. 
191    </p>
192    <h4 id="localized" name="localized">
193      localized
194    </h4>
195    <p>
196      {{ Fx_minversion_inline(3) }} Allows you to localize the ad
>d-on's name, description, contributors and other metadata. The lo 
>calized description must specify at least one <code>em:locale</co 
>de> which indicates which locales to use this information for. 
197    </p>
198    <p>
199      <strong>Examples</strong>
200    </p>
201    <p>
202      This declares a set of add-on metadata to be displayed when
> the application is running in the de-DE locale. 
203    </p>
204    <pre>
205&lt;em:localized&gt;
206  &lt;Description&gt;
207    &lt;em:locale&gt;de-DE&lt;/em:locale&gt;
208    &lt;em:name&gt;Tab Sidebar&lt;/em:name&gt;
209    &lt;em:description&gt;Zeigt in einer Sidebar Vorschaubilder d
>er Inhalte aller offenen Tabs an.&lt;/em:description&gt; 
210  &lt;/Description&gt;
211&lt;/em:localized&gt;
212</pre>
213    <p>
214      The following properties which are described elsewhere in t
>his page can be included in the localized property: 
215    </p>
216    <ul>
217      <li>name
218      </li>
219      <li>description
220      </li>
221      <li>creator
222      </li>
223      <li>homepageURL
224      </li>
225      <li>developer
226      </li>
227      <li>translator
228      </li>
229      <li>contributor
230      </li>
231    </ul>
232    <p>
233      More documentation can be found at <a href="/en/Localizing_
>extension_descriptions" title="en/Localizing_extension_descriptio 
>ns">Localizing extension descriptions</a>. 
234    </p>
235    <h4 id="description" name="description">
236      description
237    </h4>
238    <p>
239      A short description of the add-on - intended for display in
> the user interface. This description should fit on one short lin 
>e of text. 
240    </p>
241    <p>
242      <strong>Examples</strong>
243    </p>
244    <pre class="eval">
245&lt;em:description&gt;Advanced foo tools.&lt;/em:description&gt;
246</pre>
247    <h4 id="creator" name="creator">
248      creator
249    </h4>
250    <p>
251      The name of the creator/principal developer - intended for 
>display in the user interface. 
252    </p>
253    <p>
254      <strong>Examples</strong>
255    </p>
256    <pre class="eval">
257&lt;em:creator&gt;John Doe&lt;/em:creator&gt;
258</pre>
259    <p>
260      or
261    </p>
262    <pre class="eval">
263&lt;em:creator&gt;CoolExtension Team&lt;/em:creator&gt;
264</pre>
265    <h4 id="developer" name="developer">
266      developer
267    </h4>
268    <p>
269      {{ Fx_minversion_inline(2) }} The name(s) of co-developers.
> You may specify more than one of this value to specify multiple  
>developers. 
270    </p>
271    <p>
272      <strong>Examples</strong>
273    </p>
274    <pre class="eval">
275&lt;em:developer&gt;Jane Doe&lt;/em:developer&gt;
276&lt;em:developer&gt;Koos van der Merwe&lt;/em:developer&gt;
277</pre>
278    <h4 id="translator" name="translator">
279      translator
280    </h4>
281    <p>
282      {{ Fx_minversion_inline(2) }} The name(s) of translators. Y
>ou may specify more than one of this value to specify multiple tr 
>anslators. 
283    </p>
284    <p>
285      <strong>Examples</strong>
286    </p>
287    <pre class="eval">
288&lt;em:translator&gt;Janez Novak&lt;/em:translator&gt;
289&lt;em:translator&gt;Kari Nordmann&lt;/em:translator&gt;
290</pre>
291    <h4 id="contributor" name="contributor">
292      contributor
293    </h4>
294    <p>
295      The name(s) of additional contributors. You may specify mor
>e than one of this value to specify multiple contributors. 
296    </p>
297    <p>
298      <strong>Examples</strong>
299    </p>
300    <pre class="eval">
301&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
302 
303&lt;em:contributor&gt;John Doe&lt;/em:contributor&gt;
304&lt;em:contributor&gt;Jane Doe&lt;/em:contributor&gt;
305&lt;em:contributor&gt;Elvis Presley&lt;/em:contributor&gt;
306</pre>
307    <h4 id="homepageURL" name="homepageURL">
308      homepageURL
309    </h4>
310    <p>
311      A link to the addon's home page - intended for display in t
>he user interface. 
312    </p>
313    <p>
314      <strong>Examples</strong>
315    </p>
316    <pre class="eval">
317&lt;em:homepageURL&gt;<span class="nowiki">http://www.foo.com/</s
>pan>&lt;/em:homepageURL&gt; 
318</pre>
319    <h4 id="updateURL" name="updateURL">
320      updateURL
321    </h4>
322    <p>
323      A link to a custom Update Manifest file that specifies avai
>lable updates to the addon. The format is described below. If ena 
>bled, the addon manager periodically checks with this Manifest fi 
>le to determine if newer versions are available. 
324    </p>
325    <div class="note">
326      <strong>Note:</strong> It is strongly recommended that the 
><code>updateURL</code> be an HTTPS (secure) link. Non-secure upda 
>te URLs can be hijacked by a malicious <code>update.rdf</code> fi 
>le, enabling malware to infiltrate the user's computer. <strong>A 
>lternatively, you could host your extension on</strong> <a class= 
>"external" href="http://addons.mozilla.org"><strong>AMO</strong>< 
>/a> <strong>and leave out the <code>updateURL</code> completely.< 
>/strong> This provides secure updates automatically. 
327    </div>
328    <p>
329      {{ Fx_minversion_inline(3) }} For security reasons, Gecko 1
>.9 applications <strong>require</strong> that if you specify an < 
>code>updateURL</code>, it must be an https URL, or you must inclu 
>de an <code><a href="#updateKey">updateKey</a></code>. 
330    </p>
331    <p>
332      Your server must send this file as <code>text/rdf</code>, <
>code>text/xml</code> or <code>application/xml+rdf</code> or the u 
>pdate checker may not work. 
333    </p>
334    <p>
335      The addon manager will substitute the following values into
> this URL in case you wish to generate the response RDF dynamical 
>ly, such as using PHP or CGI: 
336    </p>
337    <table border="1" cellpadding="3" cellspacing="2">
338      <tbody>
339        <tr>
340          <td>
341            <code>%REQ_VERSION%</code>
342          </td>
343          <td>
344            The version of the request. Currently 1
345          </td>
346        </tr>
347        <tr>
348          <td>
349            <code>%ITEM_ID%</code>
350          </td>
351          <td>
352            The <code>id</code> of the addon being updated
353          </td>
354        </tr>
355        <tr>
356          <td>
357            <code>%ITEM_VERSION%</code>
358          </td>
359          <td>
360            The <code>version</code> of the addon being updated
361          </td>
362        </tr>
363        <tr>
364          <td>
365            <code>%ITEM_MAXAPPVERSION%</code>
366          </td>
367          <td>
368            The <code>maxVersion</code> of the <code>targetApplic
>ation</code> object corresponding to the current application for  
>the addon being updated. 
369          </td>
370        </tr>
371        <tr>
372          <td>
373            <code>%ITEM_STATUS%</code>
374          </td>
375          <td>
376            {{ 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</cod 
>e> plus any number of <code>incompatible</code>, <code>blockslist 
>ed</code> or <code>needsDependencies</code>. 
377          </td>
378        </tr>
379        <tr>
380          <td>
381            <code>%APP_ID%</code>
382          </td>
383          <td>
384            The <code>id</code> of the current application
385          </td>
386        </tr>
387        <tr>
388          <td>
389            <code>%APP_VERSION%</code>
390          </td>
391          <td>
392            The <code>version</code> of the application to check 
>for updates for 
393          </td>
394        </tr>
395        <tr>
396          <td>
397            <code>%CURRENT_APP_VERSION%</code>
398          </td>
399          <td>
400            {{ Fx_minversion_inline(3.5) }} The <code>version</co
>de> of the current application 
401          </td>
402        </tr>
403        <tr>
404          <td>
405            <code>%APP_OS%</code>
406          </td>
407          <td>
408            {{ Fx_minversion_inline(1.5) }} The value of <code><a
> href="/en/OS_TARGET" title="en/OS_TARGET">OS_TARGET</a></code> f 
>rom the Firefox build system, identifying the operating system be 
>ing used. 
409          </td>
410        </tr>
411        <tr>
412          <td>
413            <code>%APP_ABI%</code>
414          </td>
415          <td>
416            {{ Fx_minversion_inline(1.5) }} The value of the <cod
>e><a href="/en/XPCOM_ABI" title="en/XPCOM_ABI">TARGET_XPCOM_ABI</ 
>a></code> value from the Firefox build system, identifying the co 
>mpiler/architecture combination used to compile the current appli 
>cation. 
417          </td>
418        </tr>
419        <tr>
420          <td>
421            <code>%APP_LOCALE%</code>
422          </td>
423          <td>
424            {{ Fx_minversion_inline(3) }} The current application
>'s locale. 
425          </td>
426        </tr>
427      </tbody>
428    </table>
429    <p>
430      <strong>Examples</strong>
431    </p>
432    <pre class="eval">
433&lt;em:updateURL&gt;<span class="nowiki">http://www.foo.com/updat
>e.cgi?id=%ITEM_ID%&amp;amp;version=%ITEM_VERSION%</span>&lt;/em:u 
>pdateURL&gt; 
434&lt;em:updateURL&gt;<span class="nowiki">http://www.foo.com/exten
>sion/windows.rdf</span>&lt;/em:updateURL&gt; 
435</pre>
436    <p>
437      <strong>For addons hosted on addons.mozilla.org:</strong> Y
>ou may not specify an <code>updateURL</code> property. By default 
>, Mozilla applications using the Addon Manager (such as Firefox a 
>nd 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 parameter 
>s through the author interface, your update manifest will be gene 
>rated automatically. Addons currently marked as <a class="link-ht 
>tps" href="https://addons.mozilla.org/firefox/pages/experimentalA 
>ddons">experimental</a> will not be updated due to security conce 
>rns. 
438    </p>
439    <p>
440      <strong>Format of the Update Manifest:</strong> The Update 
>Manifest is a RDF/XML datasource. For examples of an update manif 
>est, see <a href="/en/Extension_Versioning,_Update_and_Compatibil 
>ity#Update_RDF_Format" title="en/Extension_Versioning,_Update_and 
>_Compatibility#Update_RDF_Format">Extension Versioning, Update an 
>d Compatibility</a> and <a href="/en/Enabling_Extension_Updates_( 
>external)" title="en/Enabling_Extension_Updates_(external)">Enabl 
>ing Extension Updates (external)</a>. 
441    </p>
442    <h4 id="updateKey" name="updateKey">
443      updateKey
444    </h4>
445    <p>
446      {{ Gecko_minversion_header(1.9) }} {{ Fx_minversion_header(
>3) }} 
447    </p>
448    <p>
449      To ensure the security of update rdf data that is retrieved
> over plain http you must use a digital signature to verify the c 
>ontents of the data. In order to do so you must include the publi 
>c part of the cryptographic key in an updateKey entry in the inst 
>all.rdf of the add-on. This can be generated using the <a href="/ 
>en/McCoy" title="en/McCoy">McCoy</a> tool. Any line breaks and wh 
>itespace as part of this entry are ignored. 
450    </p>
451    <p>
452      <strong>Examples</strong>
453    </p>
454    <pre class="eval">
455 &lt;em:updateKey&gt;MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426e
>rD/H3XtsjvaB5+PJqbhj 
456               Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI
>9vWu8058N9CHhD 
457               NyeP6i4LuUYjTURnn7Yw/IgzyIJ2oKsYa32RuxAyteqAWqPT/J
>63wBixIeCxmysf 
458               awB/zH4KaPiY3vnrzQIDAQAB&lt;/em:updateKey&gt;
459</pre>
460    <h4 id="optionsURL" name="optionsURL">
461      optionsURL
462    </h4>
463    <p>
464      The <code>chrome://</code> URL of the extension's options d
>ialog box. This is only 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. 
465    </p>
466    <p>
467      <strong>Examples</strong>
468    </p>
469    <pre class="eval">
470&lt;em:optionsURL&gt;<a class=" external" href="chrome://myext/co
>ntent/options.xul" rel="freelink">chrome://myext/content/options. 
>xul</a>&lt;/em:optionsURL&gt; 
471</pre>
472    <h4 id="aboutURL" name="aboutURL">
473      aboutURL
474    </h4>
475    <p>
476      The<code>chrome://</code> URL of the extension's about dial
>og box. This is only useful to extensions. If this property is sp 
>ecified, when the extension is selected in the Extensions list, t 
>he About... link in the extension's context menu will show this d 
>ialog, rather than the default. 
477    </p>
478    <p>
479      <strong>Examples</strong>
480    </p>
481    <pre class="eval">
482&lt;em:aboutURL&gt;<a class=" external" href="chrome://myext/cont
>ent/about.xul" rel="freelink">chrome://myext/content/about.xul</a 
>>&lt;/em:aboutURL&gt; 
483</pre>
484    <h4 id="iconURL" name="iconURL">
485      iconURL
486    </h4>
487    <p>
488      A <code>chrome://</code> URL to a 32x32 icon to display in 
>the add-ons list. If this property is not specified, a default ic 
>on is used. 
489    </p>
490    <pre class="eval">
491&lt;em:iconURL&gt;<a class=" external" href="chrome://myext/skin/
>icon.png" rel="freelink">chrome://myext/skin/icon.png</a>&lt;/em: 
>iconURL&gt; 
492</pre>
493    <div class="note">
494      <strong>Note:</strong> For the above example to work you wi
>ll also have to add a <code>skin package</code> line to your <cod 
>e>chrome.manifest</code> file. See <a href="/en/Chrome_Registrati 
>on#skin" title="en/Chrome_Registration#skin">Chrome Registration# 
>skin</a>. Alternatively you can place your icon in the directory  
>specified in your <code>content package</code> line. 
495    </div>
496    <p>
497      {{ gecko_minversion_note("1.9.2", "Starting in Gecko 1.9.2 
>(Firefox 3.6), you can also simply include your icon, named <code 
>>icon.png</code>, in the base directory of the add-on. This allow 
>s your add-on's icon to be displayed even when the add-on is disa 
>bled, or if the manifest is missing an <code>iconURL</code>&nbsp; 
>entry.") }} 
498    </p>
499    <h4 id="targetPlatform" name="targetPlatform">
500      targetPlatform
501    </h4>
502    <p>
503      {{ Fx_minversion_inline(1.5) }} A string specifying a platf
>orm that the addon supports. It contains either the value of <a h 
>ref="/en/OS_TARGET" title="en/OS_TARGET">OS_TARGET</a> alone or c 
>ombined with <a href="/en/XPCOM_ABI" title="en/XPCOM_ABI">TARGET_ 
>XPCOM_ABI</a>, separated by an underscore (_). 
504    </p>
505    <p>
506      You can specify multiple targetPlatform properties per mani
>fest. If any value matches the application's build parameters, it 
> will be installed; if not, the user will get an appropriate erro 
>r message. 
507    </p>
508    <p>
509      <strong>Examples</strong>
510    </p>
511    <pre>
512&lt;em:targetPlatform&gt;WINNT_x86-msvc&lt;/em:targetPlatform&gt;
513 
514&lt;em:targetPlatform&gt;Linux&lt;/em:targetPlatform&gt;
515 
516&lt;em:targetPlatform&gt;Darwin_ppc-gcc3&lt;/em:targetPlatform&gt
>; 
517 
518&lt;em:targetPlatform&gt;SunOS_sparc-sunc&lt;/em:targetPlatform&g
>t; 
519</pre>
520    <p>
521      Usually, you would use only the OS part for themes or for e
>xtensions that are not fully cross-platform. For extensions inclu 
>ding binary (compiled) components, you should never use the OS al 
>one, but include the <a href="/en/XPCOM_ABI" title="en/XPCOM_ABI" 
>>ABI (s)</a> that you compiled the components with. If you want t 
>o include multiple versions of the components, you should also us 
>e <a href="/en/Bundles#Platform-specific_Subdirectories" title="e 
>n/Bundles#Platform-specific_Subdirectories">Platform-specific Sub 
>directories</a>. 
522    </p>
523    <p>
524      <strong>Notes</strong>
525    </p>
526    <ul>
527      <li>In the same manifest file, you could even mix values wi
>th and without ABI. If a value for the application's OS is encoun 
>tered that requires any specific ABI, the ABI is considered impor 
>tant for that OS and the application will refuse to install the a 
>ddon if it does not find a matching OS/ABI combination. This mean 
>s that if all of the above examples would occur in one manifest,  
>the addon will install on any Linux build of the application, reg 
>ardless of its ABI, but not on a Windows Cygwin build. 
528      </li>
529      <li>There may be builds of Firefox and Thunderbird which do
> not "know" their ABI (most likely ports to rare platforms, or no 
>n-official builds). These builds will refuse to install any addon 
> that requires a specific ABI for their platform. 
530      </li>
531    </ul>
532    <p>
533      This property was added for Firefox/Thunderbird 1.5. Previo
>us versions of these applications will ignore the restrictions an 
>d install the addon regardless of the platform. 
534    </p>
535    <h4 id="requires" name="requires">
536      requires
537    </h4>
538    <p>
539      {{ Fx_minversion_inline(2) }} This tag has a similar syntax
> to the <code>&lt;em:targetApplication&gt;</code> tag. If the add 
>-on specified by the <code>&lt;em:id&gt;</code> tag is not instal 
>led or has an incompatible version, the extension manager will di 
>sable your extension and show the message "Requires additional it 
>ems". You can add as many <code>&lt;em:requires&gt;</code> tags a 
>s you like. Your extension will be disabled if any of the specifi 
>ed requirements fail. 
540    </p>
541    <p>
542      <strong>Example</strong>
543    </p>
544    <pre>
545&lt;em:requires&gt;
546   &lt;Description&gt;
547     &lt;!-- Lightning --&gt;
548     &lt;em:id&gt;{e2fda1a4-762b-4020-b5ad-a41df1933103}&lt;/em:i
>d&gt; 
549     &lt;em:minVersion&gt;0.5pre&lt;/em:minVersion&gt;
550     &lt;em:maxVersion&gt;0.5pre&lt;/em:maxVersion&gt;
551   &lt;/Description&gt;
552 &lt;/em:requires&gt;
553</pre>
554    <p>
555      <strong>Notes</strong>
556    </p>
557    <ul>
558      <li>Currently, only <code>&lt;em:id&gt;</code>, <code>&lt;e
>m:minVersion&gt;</code>, <code>&lt;em:maxVersion&gt;</code> are p 
>arsed inside the <code>&lt;em:requires&gt;</code> tag. 
559      </li>
560      <li>It is not currently possible to add dependencies that a
>re specific to a <code>&lt;em:targetApplication&gt;</code>. See { 
>{ interwiki("wikimo", "Extension_Manager:Extension_Dependencies", 
> "wikimo:Extension Manager:Extension Dependencies") }} for more d 
>etails. 
561      </li>
562    </ul>
563    <p>
564      This property was added for Firefox/Thunderbird 2. Previous
> versions of these applications will ignore the restrictions and  
>install the add-on regardless of the requirements. 
565    </p>
566    <h3 id="Obsolete_Property_Reference" name="Obsolete_Property_
>Reference"> 
567      Obsolete Property Reference
568    </h3>
569    <p>
570      These properties were required in older versions of the Add
>on Manager, but have been replaced with newer and better mechanis 
>ms. 
571    </p>
572    <h4 id="file" name="file">
573      file
574    </h4>
575    <p>
576      <strong>Firefox 1.0</strong> This property pointed to a chr
>ome <code>.jar</code> file that contains chrome packages that req 
>uire registration with the Chrome Registry. 
577    </p>
578    <p>
579      The <code>&lt;em:file&gt;</code> property has a complex obj
>ect value. The uri of the value is <code>urn:mozilla:extension:fi 
>le:jarFile.jar</code> where <code>jarFile.jar</code> is the name  
>of the jar file that contains the chrome package's files. This co 
>uld also be the name of a directory that contains the chrome pack 
>age's files, un-jarred (e.g. <code>urn:mozilla:extension:file:dir 
>ectory</code>). In either case, the referenced chrome package fil 
>e(s) must be placed in the <code>chrome</code> subdirectory of th 
>e XPI's top level. 
580    </p>
581    <p>
582      This object has a <code>package</code> property (with a pat
>h within the jar file or directory that leads to the location whe 
>re 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 (di 
>tto, but to register the theme material). 
583    </p>
584    <p>
585      In extensions for Firefox 1.5, this property is no longer n
>ecessary: the <code><a href="/en/Chrome_Registration" title="en/C 
>hrome_Registration">chrome.manifest</a></code> at the top level o 
>f the XPI is used to locate chrome to register. If there is no ch 
>rome.manifest, this property is still read by the Addon Manager a 
>nd a chrome.manifest is generated from old-style contents.rdf. 
586    </p>
587    <p>
588      <strong>Examples</strong>
589    </p>
590    <pre class="eval">
591&lt;em:file&gt;
592 &lt;Description about="urn:mozilla:extension:file:myext.jar"&gt;
593  &lt;em:package&gt;content/myext/&lt;/em:package&gt;
594  &lt;em:locale&gt;locale/en-US/myext/&lt;/em:locale&gt;
595  &lt;em:skin&gt;skin/classic/myext/&lt;em:skin&gt;
596 &lt;/Description&gt;
597&lt;/em:file&gt;
598</pre>
599    <p>
600      An Install Manifest may specify multiple <code>file</code> 
>properties, one for each jar file or subdirectory that contains c 
>hrome to register. 
601    </p>
602    <h4 id="hidden" name="hidden">
603      hidden
604    </h4>
605    <p>
606      <strong>Firefox 1.0</strong> <strong>- 3.5</strong> A boole
>an 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 {{ An 
>ch("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 l 
>ist does not make sense. 
607    </p>
608    <div class="note">
609      <strong>Note:</strong> This property is no longer supported
> under Gecko 1.9.2 (Firefox 3.6)&nbsp;or later, to prevent extens 
>ions from being installed in such a way that the user might not b 
>e able to tell they're installed. 
610    </div>
611    <p>
612      <strong>Examples</strong>
613    </p>
614    <pre class="eval">
615&lt;em:hidden&gt;true&lt;/em:hidden&gt;
616</pre>
617    <h3 id="Glossary" name="Glossary">
618      Glossary
619    </h3>
620    <h3 id="restricted_access_area" name="restricted_access_area"
>> 
621      restricted access area
622    </h3>
623    <p>
624      A <em>restricted access area</em> is an install location th
>at could be restricted on a restricted-access account, regardless 
> of whether or not the location is restricted with the current us 
>er privileges (see {{ Source("toolkit/mozapps/extensions/public/n 
>sIExtensionManager.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" t 
>itle="en/Adding_Extensions_using_the_Windows_Registry">Adding Ext 
>ensions using the Windows Registry</a> for details) are restricte 
>d. 
625    </p>
626    <p>
627      The <code>($PROFILE)/extensions</code> and <code>HKEY_CURRE
>NT_USER</code> install locations, on the other hand, are not rest 
>ricted. 
628    </p>
629    <p>
630      {{ languages( { "es": "es/Manifiesto_de_instalaci\u00f3n", 
>"fr": "fr/Manifestes_d\'installation", "ja": "ja/Install_Manifest 
>s", "pl": "pl/Manifesty_Instalacji", "zh-cn": "cn/Install_Manifes 
>ts" } ) }} 
631    </p>

Back to History