Browser extensions for RIAs

By Kshitij Sobti Published Date
22 - Feb - 2011
| Last Updated
22 - Feb - 2011
Browser extensions for RIAs

Despite the growing power of web applications, their control over a user's browsing experience on other sites is quite limited. A budding image editing application, cannot encourage major websites to add their code to allow the end-use to edit any image online.

Take, for example, an image editing applications such as Today we can consider browser-based applications equivalent to desktop-based applications in features, yet they cannot handle simple things such as file associations on the user's computer, on the other hand, they are not able to take full advantage of the capabilities that they can provide outside of their own site.

Tools for social networking, editing images, editing documents etc, can all do with some added integration on third-party websites, and while most websites are willing to integrate the likes of Facebook, Twitter, etc on their sites, for sharing content, few, if any, will provide easy links to edit their documents or images online. Editing documents and images is just a small example of a good functionality lost.

This is where browser extensions / add-ons can be of great use. Nearly all major browsers today support some form of extensibility. Continuing with our example of image editors, the usability of such an application can be much enhanced if it is possible for the end user to simply right click on any image on the web, and choose to open it with his favourite online image editor., the example we used before, does just this, with its extensions for Google Chrome and Mozilla Firefox. Google themselves have an add-on for their browser that allows one to open documents in their online Google Docs office suite rather than download it and use a native application.

Once a user has downloaded a file, their incentive to use an online application is lost, as in order to use one they will have to upload the file again using the application's interface. Why let that happen?

There are many applications that can take advantage of such interactions. TinEye for example, is an image search engine that lets you search using images instead of words. You specify an image, and TinEye will look for images that look similar to it. Such a tool can be quite useful, but unlike words that can just be typed into a search field, for images you need to specify a link or upload one from your computer ‒ hardly user-friendly. TinEye resolves this by providing browser extensions that add a context menu to search for any image on any site.

Extensions can bridge difficult interface gaps that prohibit sharing of data between multiple websites and between a website and the native system. They also separate the functionality of your applications that requires greater / deeper access in the the extension making that part of the experience opt-in.

Most browser have now made it such that developing browser extensions is not much different from creating RIAs using technologies any web developer will already be familiar with such as HTML, XML, CSS and JavaScript. Google Chrome, Opera, and Safari make it simple to develop such extensions. Firefox extensions too can be created using web technologies but require more involved knowledge of Firefox internals ‒ this will change with the release of their Add-On SDK.

Any feature of a webapp that can gain from interacting with other websites or the native system is a candidate for enhancement via an extension of some sort. For example, if you your application has any kind of notifications to give (socially-connected apps usually do), such notifications can remind the end user of the existence of the application, and can draw back a user if an interesting notification is encountered.

Such measures can add more routes to reaching your website, and keep people aware of your webapp even when they aren't using it by allowing for interactions that aren't directly supported without some form of browser amalgamation.