December 5, 2008

Ubiquity 0.1.3 Preview: Faster, Prettier

We’re currently working on Ubiquity 0.1.3, a release that improves Ubiquity’s responsiveness and adds skinning support. In preparation for this, I’ve just released the first Ubiquity 0.1.3 Release Candidate. Please feel free to download it—you’ll automatically be upgraded to each new release candidate as it becomes available, as well as the final 0.1.3 release. Any bugs that you can report either to our bug database or our mailing list would be much appreciated.

The new default Ubiquity skin, created by Yatrik Solanaki and called Simpliquity, looks beautiful:

Abimanyu Raja’s new skin support makes it possible for artists to create new skins using just a bit of CSS. We don’t yet have a central listing of skins, but if you make one, please let us know on the mailing list—we’re looking forward to seeing your designs!

There’s been some major changes to the way that Ubiquity works internally. When I started Ubiquity earlier this year, it was my first Firefox addon and I made quite a few common mistakes. One of these was putting all my JavaScript code in the same context as the browser window—which was fine with me, because I personally only use one browser window with lots of tabs. But problems occurred when a user tried opening a new browser window:

As you can see from the above image, having two browser windows open actually created two copies of Ubiquity—one for each browser window. This created a host of problems, the most immediate of which made the user’s browser less responsive and more bloated. So I’ve recently refactored things so that they look like they ought to:

Along with a host of other optimizations and bugfixes, Ubiquity is now significantly more lightweight than it was before, but the restructuring also required some changes to the command feed API that may break Ubiquity’s compatibility with some feeds. I’ll be documenting this soon, but for the time being, I’ve tried to add warning messages to the JS console that explain deprecated/abandoned features when they’re called upon.

I’ve also added a binary XPCOM component for some platforms and versions of Firefox that will make the debugging of command feeds much easier, because correct file name and line numbers are reported when errors occur. Hopefully I’ll be able to integrate the same functionality into the platform before Firefox 3.1 is out so we don’t have to recompile this component separately for every new version of Firefox (see bug #445873).

Aside from that, Jono has just re-added support for noun-first suggestions and the context menu. There’s also been a host of bugfixes and enhancements by Blair McBride, Fernando Takai, and other contributors.

We should be rolling out the final 0.1.3 release in the next few days; once we’re done with that, it’ll be time to focus on security and UI extensibility as discussed in our planning meeting. More thoughts on that soon—but for now, please check out the 0.1.3 release candidate and let us know what you think!

© Atul Varma 2020