Over the past few days, I've been thinking about optimizing Firefox as a container for Web Apps - specifically apps like Google Docs which are basically desktop apps that happen to be delivered over the internets and not apps like Flickr which have the WWW embedded in their DNA.

The use case is simple: I have a couple of tabs with a couple of Google Docs documents open in Firefox; apart from a dozen or so other tabs open from regular web browsing. Every once in a while, a truant Java applet throws a fit or the Flash plugin cries over not getting exclusive rights to /dev/dsp. The result, more often than not, is that Firefox freezes and dies - taking my documents with it.

Now Google Docs is nice enough to auto-save every once in a while so that I never lose any data but it really kills me that some stupid cat video can take down my work as and when it pleases. So I set out to isolate the document editing session from the cat video watching session.

The first step, obviously, is to create a new 'Apps' Firefox profile for document editing sessions. Actually, that might as well be the last step since a different profile means that my 'regular browser' Firefox now runs as a different process and can't take down my 'Apps' Firefox process.

But just to prevent myself from turning the 'Apps' Firefox into a 'regular browser' (which it is!), I decided to take a few extra steps. First, I bookmarked my personal Google Docs page and my company's Google Docs page. Next, I set the bookmarks (which are saved as bookmarks.html in the profile folder) as my homepage. Finally, I hid the Bookmarks Toolbar and the Navigation Toolbar to prevent the temptation of opening random sites.

Then thinking about the pointless History and Help menus at the top, I created a userChrome.css file to hide them: