I guess you’ve heard … Firefox 2.0 is out.
I resisted running the earlier Firefox 2.0 release candidates, but now that the official 2.0 release is out, I thought I’d give it a go. In reality, there are no dramatically new features between the 1.5.x and 2.0 release, but I was more interested in the claim that 2.0 was faster and more stable than the (already pretty good) 1.5.x versions. And for the record, I’d say it is faster and more stable in my hands.
I thought I’d give a quick rundown of the installation and some tweaks, if anything for my own future reference.
I’m running Ubuntu Dapper 6.06, and since Firefox 2.0 hasn’t been backported to the Ubuntu Dapper 6.06 repositories yet (and may never be), and I’m not prepared to upgrade to Edgy Eft 6.10 (yet), I had to find another option for getting my Firefox 2.0 goodness.
After backing up my ~/.mozilla directory ($ cp -r ~/.mozilla ~/.mozilla.184.108.40.206), I installed Swiftfox , a processor-type optimized build of Firefox (downloaded appropriate deb and ran $ sudo dpkg -i swiftfox_2.0-1_pentium-m.deb). After installing, ‘Swiftfox’ was added under ‘Internet’ in the Applications menu. As far as I can tell, apart from the compile time optimisations and changing the word ‘Firefox’ to ‘Swiftfox’ in a few places, there is no other difference to the vanilla Mozilla Firefox 2.0 releases.
So far, it’s been working nicely, but there were a few little steps to migrate my old Firefox 220.127.116.11 config and extensions to Swiftfox 2.0.
Rescuing disabled extensions:
Most of my Firefox configuration was carried over correctly, however a few extensions that have not (and may never be) updated for Firefox/Swiftfox 2.0 were automatically disabled.
The trick around this is to install the ‘Nightly Tester Tools‘ extension. Once you have restarted Swiftfox/Firefox, you can go to Tools->Add-ons and then right-click on any disabled Extension and select ‘Make compatible’. I’d suggest doing it one extension at a time, restarting and testing, since things can go stupid if an extension is truly not compatible.
Many extensions work fine, despite not being designed for anything higher than Firefox 1.5.x (eg NeedleSearch and SwitchProxy to name a few). However, not every extension behaved correctly when forced to run (eg. TabMixPlus), and so after having some strange behaviour, I re-disabled those. A lot of extensions tend to be fixed and updated a week or two after a major Firefox release, so there is hope that the broken ones will become available for Firefox 2.0 soon.
I also used this as an opportunity to disable or uninstall any extension I wasn’t using. I find it often makes Firefox run faster, use less memory, (leak less memory :P), and in a very small way it makes your browser more secure by not having lots of random unmaintained extensions hanging around.
Here are a few things I like to tweak in a new Firefox installation, and some brand new options to tweak in Firefox/Swiftfox 2.0. (All these can be accessed by typing about:config in the address bar, and many were pinched from here).
Firefox 2.0 already restores all tabs and forms after a crash, but it can also be set to restore tabs back to their original state after a normal shutdown. This is about the only feature of the TabMixPlus extension that mattered to me … it’s great that it is now part of Firefox proper !
To enable auto-restore all the time, change:
browser.startup.page = 3
(this one can also be found under Edit->Preferences->Main->When Swiftfox starts->”Show my tabs and windows from last time”)
You can fit a few more visible tabs along the top by setting:
browser.tabs.tabMinWidth = 75
I hate those stupid close buttons on the tabs. I’m forever accidentally closing a tab unintentionally. Technically, it seems like putting the close button on the tab is actually better user interface design, but old habits die hard, so I put it back on the far right hand side in the style of Firefox 1.5.x with:
browser.tabs.closeButtons = 3
I got rid of the ‘Go’ button at the end of the url bar. I don’t need it, since there is a big, highly accessible ‘Go’ button on my keyboard already, labelled ‘Enter’.
browser.urlbar.hideGoButton = true
I also use some HTTP pipelining and rendering tweaks. Apparently pipelining can break some sites such as Myspace.com … but in the case of Myspace, how could you tell if the site was broken or not ?
network.http.pipelining = true
network.http.proxy.pipelining = true
network.http.pipelining.maxrequests = 8
(don’t set maxrequests higher, Firefox won’t allow more anyway since it adheres to the HTTP spec)
nglayout.initialpaint.delay = 0
(may need to experiment with this one)
I’m a cookie snob, so I disable third-party cookies (which doesn’t have a GUI configuration option in Firefox 2.0 like it did in 1.5.x … it’s gotta be some conspiracy):
network.cookie.cookieBehavior = 1
Finally, turn off link prefetching. This is a ‘feature’ whereby the browser follows links which authors have marked to be prefetched in the current page, potentially wasting your bandwidth and CPU time on the chance that you will click on one of the pages that gets “precached”. With it turned on, prefetched pages are likely to load much faster. Personally, I don’t trust that it won’t be abused by some page authors and I like to have more control of what my browser fetches. So, without going off into a paranoid rant … I turn it off.
network.prefetch-next = false
Well, that’s enough tweaking for today. I’ll leave the obligatory “Must have Firefox Extensions” post for another day.