Firefox Extension Template

By  on  

Creating a Firefox extension can be difficult if you don't know the files involved and how to structure your extension folder. Fear not -- I have created a very basic Firefox extension template file/folder structure for you to get your first plugin going.

File & Folder Structure

  • MyExtension/
    • chrome/
      • content/ - contains the extensions XUL and JavaScript files.
        • myExtension.xul - The XML that creates the layout of the extension.
        • options.xul - The XML that creates proviedes extension options. Empty for this template.
        • myExtension.js - The JavaScript that manages the action of each extension object.
      • locale/ - contains language files. None included in this template. Assume English.
      • skin/ - contains images and CSS to control extension object layout.
        • myExtension.css - a CSS file controling presentation, just like a website.
        • logo.png - a sample image. All images go in this folder as well.
    • chrome.manifest - maps out the file/structure layout of the extension for Firefox.
    • install.rdf - provides information about the extension.
    • update.rdf - gets pinged to check for extension updates.

Note that this structure isn't required but is a very commonly used structure. Also, make sure to check out my David Walsh Blog Toolbar post to see an example of my file contents.

Stay tuned for my post on creating the XPI file that packages the extension!

Recent Features

  • By
    Page Visibility API

    One event that's always been lacking within the document is a signal for when the user is looking at a given tab, or another tab. When does the user switch off our site to look at something else? When do they come back?

  • By
    Conquering Impostor Syndrome

    Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post...

Incredible Demos

  • By
    Using MooTools to Instruct Google Analytics to Track Outbound Links

    Google Analytics provides a wealth of information about who's coming to your website. One of the most important statistics the service provides is the referrer statistic -- you've gotta know who's sending people to your website, right? What about where you send others though?

  • By
    MooTools ContextMenu Plugin

    ContextMenu is a highly customizable, compact context menu script written with CSS, XHTML, and the MooTools JavaScript framework. ContextMenu allows you to offer stylish, functional context menus on your website. The XHTML Menu Use a list of menu items with one link per item. The...

Discussion

  1. I guess both of us think alike :) http://github.com/cheeaun/example-fx

  2. @Lim Chee Aun: As always! :) This setup is pretty common.

  3. u mis-typed the word “chrome”…

  4. @Foobar: Updated.

  5. Thanks a bunch David, I’ve always wanted to try my hand at creating my own Firefox tool bar but never really knew how to start. Thanks for the jump start. ;)

  6. You can use an Extension Wizard for that purpose.

  7. Scott Morris

    I have been tasked to create an add on and through all the searching and examples yours was the best. Thank you.

  8. andrew

    I have defind a new action that to call other program In my myExtension.js ,
    Am i input the program with myExtension.js in content too ?

  9. I always to the star to make my Firefox toolbar, but knew how to really wanted to try my hand but never.
    ——————————–
    ruthallen

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!