"In Firefox, extensions get the same interfaces and level of access as the Firefox UI does, so they can do pretty much anything: access data like cookies and preferences, modify settings, change behaviour," says Barnabe, who is one of the developers of the Stylish plug-in for Firefox and Chrome. "Chrome only lets you into certain things -- and while the things you get are useful, it does stifle the possibilities."
Barnabe's attempts to rewrite Stylish for IE demonstrates another limiting factor developers face when it comes to coding plug-ins: browser upgrades that break with the past. IE has changed dramatically over the past few years, Barnabe says, and the documentation for the earlier versions doesn't help with the newer versions.
Programming language also plays a role in what developers offer. IE, for example, welcomes code written for .Net, rendering non-.Net programmers, such as Barnabe, less likely to port their plug-ins across all browsers.
Dedicated programmers can work around many of the limitations of these APIs, but not all. For example, the Cooliris plug-in, which displays content on an infinite wall in three dimensions, works with Firefox on Windows, Mac, and Linux, but only on the Windows version of Chrome.
"Creative solutions were necessary in some cases," said Austin Shoemaker, co-founder and CTO of Cooliris. "Sometimes the extension API does not enable us to extend the user interface in ways we would like to. However, some limitations simplify the API, and we can usually work around these limitations in native code."
Firefox offers two paths for changing the look of your browser: Personas and Themes.
Two GIF files is all it takes to whip together a new look using Firefox's Persona mechanism. These images sit behind the buttons in the browser's header, as well as behind the status bar at the base of the window. You can use the Persona Plus plug-in to set up your Persona, or choose one of more than 35,000 premade Personas directly from Mozilla's Personas directory.