Add-ons (sometimes referred to as extensions) are one of the most powerful features of modern web browsers. They allow users to customize browser UI elements, web content, and the user’s data in ways that are not possible with a standard web page. In short, add-ons allow developers to augment the user’s web experience in almost every way imaginable. As a testament to their power to do so, browser manufacturers now routinely use add-ons to prototype new features, some of which end up being built into the browser itself (look under the section entitled “Graduated”).
In the last couple of years the developer landscape for add-ons has been heating up. Mozilla started the Jetpack project (now a full fledged product, the Add-ons SDK), Chrome introduced its extensions APIs, Safari joined the fray, and Opera will soon introduce its own add-ons framework. In comparison with years past, it is an even better time to be an add-ons developer. Assuming you are interested in developing an add-on for any of the major browser vendors today, you would start by asking yourself what they offered in terms of developer support and APIs…
…enter the Browser Add-on API Coverage Table
The following table is a work up of all the various types of add-on APIs offered by each platform. For various APIs, the names may differ from one browser to another, I have done my best to group APIs together that offer comparable functionality. I chose to standardized the titles of the various APIs shown in the table by their Mozilla Add-ons SDK name for uniformity. The list of total possible APIs was derived by taking the all the APIs from each of the browser vendors and reducing them to a unique set based on their comparative functionality. This means the list will grow as browsers release new and different APIs, which will in turn affect the coverage ratings in the table. All APIs link to their source documentation where possible. Have fun learning about all the amazing things you can do to your browser!
If you find anything that is out of date or in need of correction, there is a form in the table’s key that you can fill out and I will be sure to adjust the table. If there is interest in listing other browsers on the table you can leave a comment on the same form and I will be happy to follow up with you about doing so.