Compare Revisions

Building an extension

Change Revisions

Revision 33435:

Revision 33435 by Jimbal on

Revision 33436:

Revision 33436 by Okan b3 on

Title:
Building an extension
Building an extension
Slug:
Building_an_Extension
Building_an_Extension
Tags:
NeedsTechnicalReview, Extensions, Add-ons, NeedsEditorialReview, NeedsUpdate
NeedsTechnicalReview, Extensions, Add-ons, NeedsEditorialReview, NeedsUpdate
Content:

Revision 33435
Revision 33436
t18    <h4 name="Setting_up_the_Development_Environment">t
19      Setting up the Development Environment
20    </h4>
21    <p>
22      Extensions are packaged and distributed in ZIP files, or <a
> href="en/Bundles">Bundles</a>, with the <tt>xpi</tt> (<i>pronoun 
>ced “zippy”</i>) file extension. The layout of content within the 
> XPI file is like so: 
23    </p>18    <p>
24    <pre class="eval">19      <b>Merabaaa&nbsp;:D</b><i>Italic text</i>
25extension.xpi:
26              /<a href="en/Install.rdf">install.rdf</a>          
>          
27              <a href="#XPCOM_Components">/components/*</a>  
28              <a href="#Application_Command_Line">/components/cmd
>line.js</a>                    
29              <a href="#Defaults_Files">/defaults/</a>
30              <a href="#Defaults_Files">/defaults/preferences/*.j
>s</a>      
31              /plugins/*                        
32              /<a href="en/Chrome.manifest">chrome.manifest</a>  
>               
33              /<a href="en/Chrome_window_icons">chrome/icons/defa
>ult/*</a>        
34              /chrome/
35              /chrome/content/
36     
37</pre>
38    <p>20    </p>
39      Because of this, it is easiest if we lay out our source fil21    <h3 name="Headline_text">
>es in a similar fashion, unless you want to write some sort of Ma 
>kefile or shell script to package and zip all of your files. Even 
> if you are prepared to do that, testing is much simpler if you l 
>ay out your files like this because of a feature of the Add-on Sy 
>stem provided by Firefox 1.5 and later. 
22      Headline text
23    </h3>
40    </p>24    <p>
25      <img alt="Image:Example.jpg" src="File:en/Media_Gallery/Exa
 >mple.jpg"><a href="File:en/Media_Gallery/Example.ogg">Media:Examp
 >le.ogg</a><span class="plain">Insert non-formatted text here</spa
 >n>--<a href="User:Okan_b3">Okan b3</a> 12:41, 16 February 2007 (P
 >ST)
41    <p>26    </p>
42      So let's get started. Create a folder for your extension so
>mewhere on your hard disk, e.g. <tt>C:\extensions\myExtension\</t 
>t> or <tt>~/extensions/myExtension/</tt>. Inside this folder crea 
>te another folder called <tt>chrome</tt>, inside the <tt>chrome</ 
>tt> folder create a folder called <tt>content</tt>. (On Unix-like 
> systems you can usually create both directories just by running  
><tt>mkdir -p chrome/content</tt> from within the extension's root 
> directory.) 
43    </p>
44    <p>27    <hr>
45      Inside the <b>root</b> of your extension folder, alongside 
>the <tt>chrome</tt> folder, create two new empty text files, one  
>called <tt>chrome.manifest</tt> and the other called <tt>install. 
>rdf</tt>. 
46    </p>
47    <p>
48      More tips on setting up the development environment can be 
>found on <a class="external" href="http://kb.mozillazine.org/Sett 
>ing_up_extension_development_environment">Mozillazine Knowledge B 
>ase</a>. 
49    </p>

Back to History