Experimenting with the Chromium-OS Web browser in Ubuntu
I’ve been wondering for quite a while if it would be possible to build and run the Web browser of the Chromium-OS in Ubuntu, and what it would take to achieve this. Also, I wanted to know what goods it could bring compared to the regular Chromium browser. So I just decided to give it a try.
Chromium-OS is to Chrome-OS what Chromium is to Google Chrome. Chrome-OS is what runs in the new shiny Google Chromebooks that started to sell a few days ago. Like Chromium, Chromium-OS is open-source: anyone could grab the sources and build it. Running it could be trickier though, it all depends on the targeted hardware, some critical drivers may be missing. The Web browser of Chromium-OS is a slightly modified Chromium, it is not part of the Chromium-OS source tree. It lives (mostly) in the Chromium tree. There’s a lib implementing the OS API linking the browser and the OS together. It’s called libcros.so, it’s (obviously) part of the OS.
My plan was just to give the Web browser a try, not the full OS, so I knew beforehand that bits will be missing. I’ve been building the regular browser since day 1, so I’m more than familiar with the source tree and its hairy build system. My initial guess was that I already had most of the code, I needed the rest, plus different build flags and probably some adjustments to my Ubuntu packaging rules. It didn’t take me long to turn my package into the -OS flavor. I decided to run it with a fresh profile, to stay on the safe side, on my Oneiric desktop, running Unity 3D. To my surprise, it even run on my first try. A few errors in the shell but no bad crash or evil snap of any kind.
First difference, it starts maximized, with rounded corners at the top, a light grey theme, and no window decorations:
All of this is expected, as everything happens in the browser in Chrom*-OS.
It’s possible to unmaximize it, but as it has no window decorations, it’s difficult to resize (only possible if you know the shortcut).
- a clock. The timezone is wrong, that’s because it failed to get it from Ubuntu (different file location in the OS)
- a network indicator, with a yellow sign, indicating a problem
- a battery indicator, with a question mark, also showing a problem