Tuesday, June 23, 2009

chromium extensions

Once I'm done with this semester, aside from some work-related learning, my personal learning will revolve around making Chromium extensions. There is a preliminary guide at http://dev.chromium.org/developers/design-documents/extensions.

For those who don't know Chromium is a new open-source browser developed heavily by Google. Chrome is Google's rebranded version of Chromium that Google actively promotes and distributes.

I now use Chrome about 50/50 with Firefox. It is much faster and stable than Firefox. One of my favorite features is that one tab can crash, and it doesn't bring down the whole browser. That one tab closes, and the rest of the browser keeps going. Also, if I close a tab all of the resources it was using are gone, unlike in Firefox where you can close all of your tabs and still have a large memory footprint from the tabs that you closed.

At work we have an application that crashes quite frequently. It is especially bad about crashing when you have it open twice in the same browser. Now that I run it in Chrome it crashes less, and when it does crash it doesn't disrupt every tab I have open.

The largest setback to Chromium/Chrome is the lack of extensions. Extension support is in development, but has not made it to the release version of Chromium yet. I am very spoiled with Firefox's AdBlock+ and Customize Google extensions. I used to not see any ads. Now that I'm using Chrome a lot I see them again.

Another setback is that their Linux version is still in heavy development. In Linux it is just Chromium.

It actually runs very well in Linux for browsing, but it doesn't yet support addons (no Flash, Java, etc.) It also doesn't have any preferences yet. Aside from that viewing pages is fast and reliable. With my hopes to learn extension development comes another problem. Even though extension support is in the development builds for Windows, it is not in the development builds for Linux. This means I will need to use my Windows virtual machine to learn development. Hopefully in four weeks when school is over this will have changed.

One of my favorite things about extensions in Chromium is that they are written in HTML, Javascript and CSS. The work learning that I mentioned above is the need to become much more familiar with using these three technologies as I plan on using them full time for my job. I am hoping to become an interface developer for our web applications. So this ties in real nice with Chromium extension development.

One great thing about Chromium on Linux is that the nightly trunk builds have been setup in a repository on Launchpad. So I simply put added the following to my software sources:
http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
And then run the following from a console:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xfbef0d696de1c72ba5a835fe5a9bf3bb4e5e17b5
sudo aptitude update
sudo aptitude install chromium-browser chromium-browser-dbg


Now every day I get the latest version of Chromium for Linux. I have slowly watched it grow over time. It is exciting to slowly watch the features get implemented.