With ubiquity comes a measure of uniformity - such is the plight of the modern Web browser.
True, subtle differences in features, flexibility, and performance set some browsers ahead of the pack for particular uses. For the most part, however, sucking down text and rendering HTML, even as the breadth of computing activity in the browser has increased, make most browsing experiences similar, regardless of the frame in which you surf.
Enter the browser hack - mechanisms by which users can customise their Web experience and tweak the performance of their browser of choice. All the major browsers make such customisations easy, though each employs a different mechanism and uses different labels. For Internet Explorer, they're add-ons; for Opera, widgets; on Chrome, extensions will do the trick, as they will on Safari; Firefox is so open that you can customise your experience via add-ons, extensions, jetpacks, personas, plug-ins, and themes.
What's great about these additional blocks of code and images is that they're usually packaged for easy installation. In most cases, one click starts the process. And there's little reason to worry about the mechanism itself. The process works smoothly -- most of the time.
Anyone looking to make their browser faster, more functional, or just plain prettier can do so by following these seven steps to a richer Web experience.
Step 1 to a better Web browser: Know your platform
Browsers differ greatly in their openness to being improved. Among the first to open up its API, Firefox still offers the most complete API for programmers to navigate, boasting the widest variety of add-ons. Apple, on the other hand, opened up Safari only recently. As such, far fewer options for customising Safari are available.
Depth of access plays a significant role in developers' ability to customise browsers as well, as plug-in developer Jason Barnabe notes.
"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."
Step 2 to a better Web browser: Face-lift
Hacks that are for the most part cosmetic alter what is sometimes called the browser's "skin." These face-lifts are the easiest place to begin.
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.