CategoryMozilla

Opera Added to the Browser Add-on API Coverage Table

I have received quite a few feedback responses on the Add-on API Table. A curiously large percentage of the responses were from folks asking me to add support for Opera’s new extension APIs. Well I committed to updating this thing, so here you go, Opera extensions APIs are now included 😉

The Opera extension API docs were pretty tough to traverse. They are quite verbose and some sections seem like a mixture of a tutorial or article with some method references sprinkled in. I want to make sure I don’t short-change any of the browsers on the list, so please let me know if I’ve missed any APIs.

Happy extension development!

State of the Add-on Developer Union: The Browser Add-on API Coverage Table

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”).

Add-ons rising!

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!

Browser Add-on API Coverage Table

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.

Jetbug – Mozilla Add-on SDK debugging library

Dogfooding is an essential part of product development for many reasons and should not be a task set aside for only certain teams. Dogfooding products helps you understand the true user experience a product offers, brainstorm new features, and uncover rough edges in need of correction. Recently while using the Add-ons SDK for a Personas related add-on, I got frustrated with the stringified console logging available by default in the SDK. While attempts were made in the past to provide more robust debugging, none have been able to maintain stability, as they were strongly tied to various moving-target applications.

Necessity Annoyance, Mother of Invention

As I set out on a search for something that would provide a better debugging experience for SDK-base add-ons, I thought I’d first take a crack at utilizing the best debugger on the planet, Firebug. To my delight (and hopefully yours as well) I was able to construct an Add-on SDK library that enabled Firebug-based debugging of add-on code in a way that should remain stable regardless of any future SDK release or Firebug code changes.

Jetbug to the rescue!

Welcome to logging of chrome-level objects and elements. Say hello to introspection of an add-on’s contents. Meet invocation of SDK APIs from the Firebug command line. Yeah, I know, its going to rock your socks. Jetbug is pretty flexible and should go a long way to advance the developer ergonomics story for the Add-ons SDK.

Download the Jetbug SDK library and drop it into an add-on you’re working on. There is a readme file included in the library that contains a brief explanation of how to use Jetbug and what methods are available to you. Let us know how you like it, we’d love to hear your feedback!

© 2022 Back Alley Coder

Theme by Anders NorenUp ↑