With Firefox making various controversial decisions lately, like wanting to remove the version number from the About dialog and following Chrome in removing http:// from the address bar without any reasonable justification I’m aware of, now feels like a good time for a fresh comparison of how Chrome and Firefox stack up as primary-use browsers.

I’ll start by clearly saying that I’m still a Firefox user through and through. Despite Firefox’s sluggishness under certain types of load, Firefox is still the only browser with a full set of about:config keys like browser.urlbar.trimURLs. The purpose of this is to explore how far Chrome has come by looking at what show-stoppers are left.

Core

Session recovery must become trustworthy

I’ll never switch to Chrome as my primary browser when it can still sometimes respond to the “Recover” button with another crash.

Userscripts must not break when JavaScript is disabled for a site

The Firefox+NoScript+Greasemonkey combo can pull it off and there are a surprising number of cases where I want no site scripts but I also want my userscripts.

Proper support for “open new windows as tabs”

Yes, Chrome has the One Window extension, but it has the odd rough edge. For example, it does occasionally miss a window and it breaks the “New Window” keyboard shortcut for when you do want one. (You have to open a new tab and then grab the mouse and “tear off” the tab into its own window)

Proper support for “clear my tracks on exit”

Chrome did Incognito Mode right (I never use Firefox’s “Private Browsing” because it doesn’t let me run regular and private windows at the same time) but Firefox did things like “clear cache on exit” right… things I need to ensure evercookie-like behaviour in the wild is all for naught.

The “this page was prevented from setting cookies” icon should include an option to set an exception right in the drop-down.

…to complete the “Session-only by default, whitelist to allow cookies to persist” behaviour so many power users are used to.

“Temporarily allow…”

For those sites where you know you’ll only be there once and you don’t want to have to babysit an open Preferences tab. (Remember, the script/cookie/etc. page action goes away once it’s allowed, so you have to keep the preferences open)

Smarter pop-up blocking

Currently, a pop-up or pop-under can bypass blocking on Chrome but not Firefox if clicking a hyperlink calls window.open() without also calling event.preventDefault(). That allows a website to display one pop-up every time the user navigates the existing window to a new page.

Ignore lower() on the currently focused window

Combined with the aforementioned popup-blocking flaw and One Window extension, this allows pop-unders (even ones which 404 due to HOSTS file blocking) to yank the browser below everything else on the desktop. (Especially irritating when you’re using LXPanel, which minimizes if the window is focused but not on top, throwing off muscle memory)

Favicons for Bookmarklets

I use various bookmarklets and it’s just not good enough for them all to have the same “blank page” icon. Really slows me down.

window.opener Ruins the Multiprocess Dream

Under certain common “open many tabs” scenarios, Chrome’s current implementation of the JavaScript window.opener property forces all of the tabs to open in the same process, revealing that Firefox is much better than Chrome at avoiding thrashing within a single renderer process when necessary.

Extension API

Issues that I’m directly aware of. The “Extensions” section also counts toward this in some cases.

I’ve grown very used to the “Automatic Save Folder” extension and Video DownloadHelper‘s ability to remember a “last used” save directory different from the rest of the browser… so Chrome would need an extension API capable of setting the directory for an about-to-be-shown Save As… dialog and allowing extensions to modify the process of remembering the last place you saved something to. (If they want to keep it secure, I’d suggest using some kind of key-value store for remembering save locations and allowing the API to set the key to be used and whether it will persist across browser restarts)

Chrome’s Strengths

Chrome’s extension API is forward-compatible. An extension that worked on Chrome N will just work on Chrome N+1 without the developer having to test and babysit a maxVersion value.

Extensions in Chrome can’t clutter up the toolbar and have no control over whether their toolbar icon is hidden on visible.

Extensions can’t add more than one top-level item to the context menu and Google seems to have done a good job at cultivating the understanding that, if you add something to the context menu, you provide a way to hide it.

Address bar integration for OpenSearch is much more polished. (But address bar search for history and bookmarks is significantly inferior)

Conclusions

Firefox

Still has its warts, but its design philosophy and plugin API allow power users who value personalization over convenient defaults (like me) to patch them away and get on with our day. Good for power users, control freaks, and people who care about their privacy. The MemShrink project will probably help Firefox regain the clear memory footprint lead Fx 3.6 had over Chrome with many tabs open.

Chrome/Chromium

Catching up nicely, but its design philosophy means that, if a wart or shortcoming bothers you, you’re probably out of luck and, unless you’re using Chromium on Linux, you’re forced into their update schedule. Beats Firefox hands-down for making it easy to keep a clean, streamlined UI in the face of extensions. Good for the average person and power users who fit what it can already do. Not good for anyone who would rage at the loss of their browsing session or who runs nVidia binary drivers and Adobe’s Flash plugin on Linux.

On opening a single tab of Chrome & Firefox each, interestingly, in the task manager ‘processes’tab, the total memory usage in Firefox is half of Chrome. Chrome has split the processes into many components which add up to almost double of Firefox.
Is this a right observation from me??

That sounds about right. Since I wrote this, the Mozilla guys have put a lot of work into a project named MemShrink and, unless you’ve got the wrong add-ons, Firefox beats Chrome’s memory use hands-down.

Of course, it doesn’t help that a multi-process browser like Chrome is at a disadvantage because it’s much easier to waste memory when writing one.