Chrome vs. Firefox: August 2011

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.

Reading and Modifying HTTP Headers (including for NPAPI requests)
Essential for re-implementing Video DownloadHelper‘s automatic support for all non-RTMP videos, HTTPS Everywhere, InlineDisposition, RefControl‘s “Forge” option for Referer: headers, and User Agent Switcher.
Custom File Openers That Aren’t “In The Cloud”
For example, allowing the RSS Subscription Extension to send feed URLs to local applications like Thunderbird without a hack like feed:.
Customizing “Save As” targets
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)

Extensions

Firefox Chrome
Cookie Monster Built-in (partial)
BitTorrent WebUI (More Flexible) Deluge in Chrome (Superior UI)
DownThemAll! None yet
Download Statusbar Built-in (bulkier)
FlashVideoReplacer Pending
NoScript ScriptNo + Built-in ClickToFlash
Panorama (built-in) Tab Sugar (shaky future)
None yet PasswordFail
ScrapBook Scrapbook
StumbleUpon with XUL Userstyle None yet
Symantec’s OpenID Seatbelt OpenID AutoFill
Toggle Word Wrap (off by default)  Always on by default

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.
  • All Chrome extensions are “restartless
  • 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.

CC BY-SA 4.0 Chrome vs. Firefox: August 2011 by Stephan Sokolow is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

This entry was posted in Geek Stuff. Bookmark the permalink.

4 Responses to Chrome vs. Firefox: August 2011

  1. Maccy says:

    I saw people using both firefox and chrome and I’ve come to be annoyed when people use chrome on my websites for this reason:

    Chrome is, like IE, and unlike Firefox, totally unable to ready c-coding through html.

    For exemple

        Spoiler HTML code
       
    body,input
        {
        font-family:”Trebuchet ms”,arial;font-size:0.9em;
        color:#333;
        }
    .spoiler
        {
        border:1px solid #ddd;
        padding:3px;
        }
    .spoiler .inner
        {
        border:1px solid #eee;
        padding:3px;margin:3px;
        }
       
       
    function showSpoiler(obj)
        {
        var inner = obj.parentNode.getElementsByTagName(“div”)[0];
        if (inner.style.display == “none”)
            inner.style.display = “”;
        else
            inner.style.display = “none”;
        }
       

    Spoiler HTML w/Js Code by Skrap

       
       
        This is a spoiler!
       

    Will create a show/hide button that will work on firefox, but it will not work on chrome, which is frustrating.

    Also, chrome is aweful with Flash ShockWave… lots of crashes and lag caused by it.

  2. Simha says:

    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.

Leave a Reply

Your email address will not be published. Required fields are marked *

By submitting a comment here you grant this site a perpetual license to reproduce your words and name/web site in attribution under the same terms as the associated post.

All comments are moderated. If your comment is generic enough to apply to any post, it will be assumed to be spam. Borderline comments will have their URL field erased before being approved.