<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://wiki.marandcustomsolutions.com/rdf'>
    <s:Snip rdf:about='http://wiki.marandcustomsolutions.com/rdf#Development/Firefox+Extensions'
         s:cUser='mpecher'
         s:oUser=''
         s:mUser='mpecher'>
        <s:name>Development/Firefox Extensions</s:name>
        <s:content>----&#xD;&#xA;1 Related Internal Topics:&#xD;&#xA;~~&#xD;&#xA;[Development/Firefox Extensions/XUL]&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp; &#xD;&#xA;[Development/Firefox Extensions/Chrome]&#xD;&#xA;~~\\&#xD;&#xA;----&#xD;&#xA;1 Related External Links:&#xD;&#xA;~~&#xD;&#xA;{link: Theory |http://www.uberdose.com/firefox/writing-firefox-extensions/}&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp; &#xD;&#xA;{link: Example |http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/#example}&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&#xD;&#xA;{link: More Theory |http://www.bengoodger.com/software/mb/extensions/howto.html}&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&#xD;&#xA;{link: Mozilla DOM Window API |http://www.mozilla.org/docs/dom/domref/dom_window_ref.html#1004028}&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&#xD;&#xA;{link: Mozilla XUL doco |http://www.mozilla.org/projects/xul/}&#xD;&#xA;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&#xD;&#xA;{link: XUL info/tutorial |http://www.xulplanet.com/}&#xD;&#xA;~~\\&#xD;&#xA;----&#xD;&#xA;&#xD;&#xA;1 .XPI Packaging&#xD;&#xA;Extensions are packaged in a .xpi file which is in a zip format. This file contains:&#xD;&#xA;* install.js&#xD;&#xA;* install.rdf&#xD;&#xA;* chrome&#xD;&#xA;&#xD;&#xA;{image:http://wiki.marandcustomsolutions.com/space/Development/Firefox+Extensions/Firefox_ext_package_overview.jpg}&#xD;&#xA;&#xD;&#xA;1.1 install.js &#xD;&#xA;This is for pre 0.9 firefox compatibility. An example follows, simply replace with suitable attributes for the extension you are writing:&#xD;&#xA;{code:none}&#xD;&#xA;// --- Editable items begin ---&#xD;&#xA;extFullName: &apos;Hello, world!&apos;, // The name displayed to the user&#xD;&#xA;extShortName: &apos;helloworld&apos;, // The leafname of the JAR file &#xD;&#xA;extVersion: &apos;0.1&apos;,&#xD;&#xA;extAuthor: &apos;Eric Hamiter&apos;,&#xD;&#xA;extLocaleNames: null, // e.g. [&apos;en-US&apos;, &apos;en-GB&apos;]&#xD;&#xA;extSkinNames: null, // e.g. [&apos;classic&apos;, &apos;modern&apos;]&#xD;&#xA;extPostInstallMessage: &apos;Success! Please restart your browser to finish the &#xD;&#xA;installation.&apos;&#xD;&#xA;// Set to null for no post-install message&#xD;&#xA;// --- Editable items end ---&#xD;&#xA;{code}&#xD;&#xA;&#xD;&#xA;1.1  install.rdf&#xD;&#xA;This holds all the install information for firefox 0.9+.&#xD;&#xA;{code:xml}&#xD;&#xA;&lt;?xml version=&quot;1.0&quot;?&gt;&#xD;&#xA;&lt;RDF xmlns=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;&#xD;&#xA;xmlns:em=&quot;http://www.mozilla.org/2004/em-rdf#&quot;&gt;&#xD;&#xA;&#xD;&#xA;    &lt;Description about=&quot;urn:mozilla:install-manifest&quot;&gt;&#xD;&#xA;&#xD;&#xA;        &lt;em:id&gt;{9AA46F4F-4DC7-4c06-97AF-5035170633FE}&lt;/em:id&gt;&#xD;&#xA;        &lt;em:name&gt;Hello, world!&lt;/em:name&gt;&#xD;&#xA;        &lt;em:version&gt;0.1&lt;/em:version&gt;&#xD;&#xA;        &lt;em:description&gt;Displays an alert message via right-click&#xD;&#xA;        or Tools menu.&lt;/em:description&gt;&#xD;&#xA;        &lt;em:creator&gt;Eric Hamiter&lt;/em:creator&gt;&#xD;&#xA;        &lt;em:homepageURL&gt;http://extensions.roachfiend.com&lt;/em:homepageURL&gt;&#xD;&#xA;        &lt;em:iconURL&gt;chrome://helloworld/skin/helloworld.png&lt;/em:iconURL&gt;&#xD;&#xA;        &lt;em:aboutURL&gt;chrome://helloworld/content/about.xul&lt;/em:aboutURL&gt;&#xD;&#xA;        &lt;em:file&gt;&#xD;&#xA;            &lt;Description about=&quot;urn:mozilla:extension:file:helloworld.jar&quot;&gt;&#xD;&#xA;                &lt;em:package&gt;content/helloworld/&lt;/em:package&gt;&#xD;&#xA;                &lt;em:skin&gt;skin/classic/helloworld/&lt;/em:skin&gt;&#xD;&#xA;            &lt;/Description&gt;&#xD;&#xA;        &lt;/em:file&gt;&#xD;&#xA;&#xD;&#xA;        &lt;em:targetApplication&gt;&#xD;&#xA;            &lt;Description&gt;&#xD;&#xA;                &lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;&#xD;&#xA;                &lt;em:minVersion&gt;0.7&lt;/em:minVersion&gt;&#xD;&#xA;                &lt;em:maxVersion&gt;1.9&lt;/em:maxVersion&gt;&#xD;&#xA;            &lt;/Description&gt;&#xD;&#xA;        &lt;/em:targetApplication&gt;&#xD;&#xA;&#xD;&#xA;    &lt;/Description&gt;&#xD;&#xA;&#xD;&#xA;&lt;/RDF&gt;&#xD;&#xA;{code}&#xD;&#xA;The &lt;em:id&gt; tag gives this extension a unique id different to make it unqiue among other extensions. Generate this with a GUID tool such as {link: guidgen |http://www.microsoft.com/downloads/details.aspx?FamilyId=94551F58-484F-4A8C-BB39-ADB270833AFC}.\\&#xD;&#xA;&#xD;&#xA;Name, version, description, creator, and homepageURL are all self-explanatory. The iconURL and aboutURL are what shows up if someone right-clicks your extension and chooses ?About Extension??. You can leave these blank, it?s not mandatory, but it?s nice to have a little flash every now and then.&#xD;&#xA;&#xD;&#xA;Underneath file, this is standard stuff. Just replace all instances of ?helloworld? with your extension name. This is where the installation will try and find your files and folders. If you have any icons, you?ll include the skin folder. Again, it?s not mandatory.&#xD;&#xA;&#xD;&#xA;Target application is what you?re gearing this for. The ec8030f7? is unique to Firefox, so leave that alone. The minversion and maxversion is what versions of Firefox it will be compatible with.&#xD;&#xA;&#xD;&#xA;1.1 chrome directory&#xD;&#xA;The chrome directory contains a .jar file which contains all the required elements. See [Development/Firefox Extensions/Chrome] for more info.&#xD;&#xA;</s:content>
        <s:mTime>2006-03-15 14:50:26.0</s:mTime>
        <s:cTime>2006-03-14 21:18:35.0</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Firefox Extensions/XUL'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Firefox Extensions/Chrome'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li>
                    <s:Snip rdf:about='http://wiki.marandcustomsolutions.com/rdf#Development/Firefox+Extensions'>
                        <s:attachments>
                            <rdf:Bag>
                                <rdf:li>
                                    <s:Attachment rdf:about='http://wiki.marandcustomsolutions.com/space/Development/Firefox+Extensions/Firefox_ext_package_overview.jpg'
                                         s:fileName='Firefox_ext_package_overview.jpg'
                                         s:contentType='image/jpeg'
                                         s:size='9313'>
                                        <s:date>Wed Mar 15 14:49:05 EST 2006</s:date>
                                    </s:Attachment>
                                </rdf:li>
                            </rdf:Bag>
                        </s:attachments>
                    </s:Snip>
                </rdf:li>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Websphere/IBM HTTP Server'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Project Management'/>
                <rdf:li rdf:resource='#Development'/>
                <rdf:li rdf:resource='#Software'/>
                <rdf:li rdf:resource='#putty'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#snipsnap-index/'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Firefox+Extensions/'/>
            </rdf:Bag>
        </s:snipLinks>
    </s:Snip>
</rdf:RDF>

