PreFox

PreFox is an early proof-of-concept web browser for webOS based on the the same source code as Mozilla Firefox for Mobile.

Why?

The default webOS browser is fast and simple to use but Mozilla Firefox for Mobile features many benefits:

  • Better support for web standards allowing rich sites like Flickr to function correctly
  • Multiple tabs and session restore
  • Remembering cookies and passwords for sites
  • Built in synchronisation of bookmarks and history with desktop Firefox
  • The awesomebar
  • Support for many add-ons

The challenge was to see if the current Palm Pre hardware and its platform webOS was capable of running such a full featured web browser. The answer is, probably yes, but there is still work to do.

Current state

PreFox

Currently PreFox runs and can be used to browse the web but the following key things keep it from being truly usable:

  • Startup is too slow. It is probably not possible to equal the startup speed of webOS’s built in browser (which is closely tied to the platform) but it still needs to be faster to be useful.
  • Memory use is currently too high often giving the “Too many cards” errors.
  • Sometimes while running PreFox will become slow for periods of time, clearly it is doing something in the background that needs to be identified.
  • Various UI and functionality tweaks specific for webOS.

In the case of the first three a lot of the work that the Mozilla team are doing to improve things on the Android platform will translate directly to PreFox.

What is next?

There are lots of things that can still be done to make PreFox a great alternative to webOS’s browser:

  • Hardware acceleration. Firefox is starting to use tools like OpenGL to accelerate web pages and UI. This should be possible in webOS too.
  • JägerMonkey. The latest update to Firefox’s JavaScript engine adds JIT compilation for all JavaScript but for some reason the early versions do not quite work correctly on webOS and so it is disabled in the current builds.
  • Electrolysis. Depending on the memory costs it should be possible to add process separation to stop webpages from hanging the main UI. This is probably something that will become necessary as more and more of the core Firefox code relies on this support

Work on PreFox is slowing down though. It has reached the point where it needs additional contributors to start to identify and fix the remaining issues. If you’re interested in helping out then you may want to learn how to build PreFox.

Installing PreFox

PreFox requires webOS 1.4.5 and so far has only been tested on a Sprint Palm Pre. It probably works a little better on a Palm Pre Plus but I have no idea whether it would even start on a Palm Pixi.

Currently it is not available in the Palm application catalog, Palm’s requirements are rather stringent which does not make it possible to distribute alpha-quality software even in the beta feeds.

So to install it you will need to be a bit of a Palm homebrew enthusiast and use tools like palm-install from the Palm SDK, webOS quick install or PreWare to install the latest package at http://bit.ly/prefox.

I’m trying to find out if I can get it listed in the regular homebrew feeds that PreWare accesses directly but so far the only one I have figured out how to upload to won’t accept a package this large.