Curiosity is bliss    Archive    Feed    About    Search

Julien Couvreur's programming blog and more

Ubiquity add-on for Firefox


Enso Mozilla Labs just released a terrific Firefox add-on called Ubiquity.
Ubiquity is a meta add-on, like Greasemonkey, which is meant to be extended by users. It lets you easily extend the browser with new functionality.

Ubiquity is meant to extend the browser, whereas Greasemonkey seems better suited for extending specific sites (such as IGN - Single Page View) or general improvements which do not require deep support by the browser (such as Textarea resize).
For example, extensions which require no user interface or integrate directly into the web page UI are a great fit for Greasemonkey.

Ubiquity allows that too, but really shines by offering a standard interface for commands: a natural language command line.

The advantage of the command line compared to other interfaces (menus, context menus, icons, etc.) is that additional commands do not consume screen real-estate and can still be discoverable (with autocomplete and hints). That scales very well when you want to have many commands.

Aza carried over a lot of lineage from Enso into Ubiquity. But Ubiquity is way more attractive, because of the simplicity of javascript. That will generate a lot more contributions.
But there remains many challenges, especially in terms of interface and security.

I would expect the command line interface and the language parsing to improve over time. The initial version is short of Aza's vision of understanding natural language, but it already greatly practical.

On the other hand, it is possible that Ubiq command would get somewhat more restricted or sandboxed, as a security model gets defined. At this point, there is no security and the commands execute with chrome access.
Greasemonkey is much more mature in that area, with strongly sandboxed user scripts and a couple of privileged methods.

I think that is more than a trust problem. Even if you trust, you should control.
We should strive for the principle of least authority (POLA). The capability security model and Caja javascript would be very promising to address this problem, but some user experience challenges are already apparent.

In any case, I must admit that as a developer, this unrestricted access to the browser's guts is a thrill and much easier than writing traditional add-ons, as Ubiquity allows to edit and run commands without restarting the browser. So far, I have a couple of scripts which take advantage of this level of privilege, using the AwesomeBar suggestion service and the proxy settings.

comments powered by Disqus