First step is to determine which method I will use to create the extension. Currently there two ways to make extensions for Firefox: Bootstrapped and XUL (pronounced “zool”)

Bootstrapped extensions were introduced in Gecko 2.0 in Firefox 4+. These extensions use a special script file to handle the functionality that the browser requires. When installed, they are inserted programmatically into Firefox so they do not require a restart of the browser. All the functionality and the user interface must bi provided by the extension. The browser only utilizes the script file mentioned earlier and calls the functions in the file as needed.

XUL is a technology created by Appcoast to create extensions for Firefox. Extensions built with this technology require the browser to restart. When XUL based extensions are installed, the browser automatically loads the user interface of the extension and loads it on top of its own UI. Since this alters the Firefox’s UI, the browser then requires a restart for the extension to be installed, updated, or disabled.

Since Firefox is moving towards a more restart-less approach to extensions, I will be creating a bootstrapped extension to accomplish this task. I will be documenting the process of creating this extension as thoroughly as possible. Lets see how this progresses.