How to build an XPCOM component in Javascript
If you are looking for Add-on SDK solution for XPCOM JavaScript components then check out platform/xpcom module first. This is a "Hello World" tutorial for creating an XPCOM component in JavaScript. This tutorial does not describe how and why XPCOM works the way it does, or what every bit of the example code does. That's been detailed elsewhere. This tutorial will show you what you need to do to get a component working in as few and as simple steps as possible. Implementation
Performance best practices in extensions - MDN Docs
One of Firefox's great advantages is its extreme extensibility. Extensions can do almost anything. There is a down side to this: poorly written extensions can have a severe impact on the browsing experience, including on the overall performance of Firefox itself. This article offers some best practices and suggestions that can not only improve the performance and speed of your extension, but also of Firefox itself. Improving startup performance
JavaScript
JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions. While it is most well-known as the scripting language for Web pages, many non-browser environments also use it, such as Node.js, Apache CouchDB and Adobe Acrobat. JavaScript is a prototype-based, multi-paradigm, dynamic language, supporting object-oriented, imperative, and declarative (e.g. functional programming) styles. Read more about JavaScript.
Manifest Files - MDN Docs
In this section, we'll see how to put chrome and XUL files into a package and create the manifest files for them. Packages A package is a set of XUL files and scripts that define the functionality of a user interface. Packages may be installed into Mozilla and referenced with chrome URLs. A package can contain any kinds of files and may be split into subdirectories for different parts of the package.
Building a Thunderbird extension 4: chrome manifest - Extensions
The file called chrome.manifest tells Thunderbird what packages and overlays are provided by the extension. Open the file called chrome.manifest that you created and add this code: content myfirstext chrome/content/ content specifies the type of material in the package myfirstext is the name of the chrome package (specified in the first segment of <em:id> in the install.rdf file chrome/content/ is the location of the package's files within the chrome namespace So, this line says that for a chrome package myfirstext, we can find its content files in the directory chrome/content/ (which is a path relative to the location of chrome.manifest).
Adding items to menus
From MozillaZine Knowledge Base Note: Information in this section applies to Mozilla Suite, Firefox and Thunderbird and other XUL-based applications. When I say Mozilla, I mean one of these three applications. This tutorial describes steps necessary to add a static or a dynamic menu item to Mozilla from an extension. It's created for beginner extension developers; if you're a user, you probably want to search for existing extensions that do what you need. Creating the overlay
Setting up an extension development environment
This article gives suggestions on how to set up your Mozilla application for extension development. Unless otherwise specified, these suggestions apply to both Firefox and Thunderbird as well as SeaMonkey version 2.0 and above. Overview
Setting up an extension development environment - MDN Docs
This article gives suggestions on how to set up your Mozilla application for extension development. Unless otherwise specified, these suggestions apply to both Firefox and Thunderbird as well as SeaMonkey version 2.0 and above. Overview Create a development user profile to run your development firefox session; with special development preferences in about:config. Install some Firefox development extensions to your dev profile.
Optimize browser rendering - Make the Web Faster
Once resources have been downloaded to the client, the browser still needs to load, interpret, and render HTML, CSS, and JavaScript code. By simply formatting your code and pages in ways that exploit the characteristics of current browsers, you can enhance performance on the client side. Use efficient CSS selectors Overview