Why Not Scriptkillers?

Using Firefox, many tabs open, my computer’s default state.

Eventually I open a Web page that has a badly written script that bogs down the browser and sometimes the whole computer and can’t be stopped or even identified.

I bookmark everything, close Firefox, kill the Firefox process in Windows Task Manager and reopen everything, login again, etc. Because this restart can take five or ten minutes and interrupts multiple things that I’m doing, I usually put up with erratic browser behavior until Firefox crashes or becomes unusable.

Why doesn’t Firefox isolate each tabbed window in its own thread or group of threads? That way, closing the tab with the runaway script would solve the problem. And why doesn’t Firefox provide a resource monitor to show the % of system resources being used by each tab, so that you can easily ID and close a problem tab? These seem to be the obvious questions.

I suspect that users are much more attuned to browser reliability than they used to be. We’re far removed from the days when PCs became unstable if you didn’t reboot them frequently and nobody used browsers for serious purposes. The programmers should make their browsers more robust as they’ve already done for operating systems.

UPDATE: This looks interesting. (There’s also this, which I remember seeing in book stores a long time ago.)

13 thoughts on “Why Not Scriptkillers?”

  1. Google Chrome runs tabs in sandboxes to avoid just that bad behavior. (plus a host of other benefits like auto syncing bookmarks, extensions, etc with other instances of Chrome on say laptop-desktop).

    Firefox’ memory usage when doing nothing at all is atrocious, and the code has become hideously bloated over time. It’s become the new IE.

  2. Where I am working another programmer is frantically rewriting his web-based program to account for IE – Microsoft just has to do things that differently.

    Personally I have found that I like Firefox the most – but when uploading photos to my car club’s website I will sometimes get hung – where Chrome does just fine. I have mentioned this to the web admin and according to him “nobody else has this problem”.

    Other things about Chrome have been a problem for me so I have pretty much stayed with Firefox as my “default browser” – except when uploading pictures to the website.

  3. I gave up on Firefox a year or so again for this, and other reasons. Chrome has individual tab processes. Chrome has better memory usage. Chrome installs add-ons without restarting the browser. Most of the aggressive, power user add-on development has gravitated towards Chrome it seems.

    Chrome wins.

  4. a) I was always a Netscape fan.
    b) When netscape got sunk, I switched to Opera.
    b) Opera got pretty buggy. So I switched to FFox.

    Now, it seems as though FFox is getting buggy. Since the last substantial update, I’ve had it just randomly die at least three to five times a week for the last three weeks.

    I think it’s time to seriously consider Chrome.

    I would point out to everyone that Chrome just PASSED IE as the most-used browser on the market. I suspect ICS had something to do with that, but whatever — it’s got the critical mass needed to supplant IE and that’s all that matters to me.

    If you DO stick with FFox, I’ll recommend some add-ons:

    Ad Block Plus (duh)

    Downloadhelper (for youtube vids)

    Firegestures (mouse gestures. If you don’t use these, you’re missing out)

    Righttoclick (helps stop scripts from killing the right-click menu)

    Tab mix plus (enhances the behavior of tabs remarkably, giving you much more control over their behavior)

    Session manager (This is the big one — it allows you to save the state of your windows and tabs at any point, so that you can restore to that state readily. Also does a pretty good job of saving the “last state” in the event of a crash)

    You might or might not like LastPass, which is a password manager. It’s mainly a question of how security sensitive you are, since LastPass saves things on a server, allowing you to get access to ALL your passwords on any machine you choose… you can, of course, use a master password to CYA, and they use high level encryption so your stuff is protected about as well as it can be. Some people still don’t like that, so it’s a matter of preference.

  5. Just so you know: Firefox has the same problem when I run it under Ubuntu Linux. I run into it about once a week, but then I tend to keep ungodly numbers of tabs open.

  6. I strongly recommend NoScript for Firefox (along with AdBlock Plus and Ghostery). It will prevent any script from running, unless you allow it. You can easily set up a whitelist of sites where you want scripts to run, while disabling scripts everywhere else. I consider it vital (along with AdBlock Plus) for preventing malware infestations, since most of those propagate via advertising and scripts. I never browse without it.

    Firefox has become very buggy recently because of a rather curious (i.e., stupid) decision made last year by Mozilla. Chrome was and is beating their pants off. The Google people release a new major release every few months. The Mozilla folks thought they should do the same and that would magically make them more competitive with Chrome. In early 2011, after many years of development, Firefox was on version 4.X. They are now on version 12.X. Distributed open-source development projects simply can’t be QA’d that rapidly, so they are now counting on you, the user, to do the QA for them. Hence the deteriorating stability of the later versions of Firefox. At the time of that decision, there was quite a controversy inside the Firefox community. Several of the top Firefox engineers quit the development team in disgust.

    The last major release on the old-style release schedule was 4.0. I have remained at 4.0.1 and that version is rock-solid reliable, if somewhat resource hungry. I refuse to upgrade. When I do finally decide to upgrade, I’ll probably switch to Chrome even though I hate Google.

  7. I’m still using FF 3.6 (with NoScript and Ghostery). The problem with script blockers is that many sites aren’t usable if you avoid all scripts, so you end up spending a lot of effort on each site, selectively unblocking scripts until the features you want work. It’s a waste of time.

    I’ve avoided upgrading FF because a plugin I use didn’t work with FF 6 and I figured if it’s not broke, don’t fix it. But I’m tired of it.

    Currently @ >40 tabs open and will probably do a FF restart today but it’s a nuisance.

    Chrome looks to be worth trying.

    I think open source is inherently flawed as a business model. The incentives aren’t right and developers tend to focus on the wrong things. WordPress is another example of this.

  8. Jonathan:

    I don’t know if this works with v 3.6, but try the Options box in the Tools Menu. Check the “Don’t Load Tabs Until Selected” box. That will give you a chance to diagnose the problem by selecting tabs one at a time.

    Also, upgrading ram is very important for FF stability. This is true even on Macs. I think 4 GB is a minimum these days.

    Finnally, I think updating your FF is a good idea. There are differences between the default appearance of the new versions and the appearance of older versions, but almost all of them can be fixed by settings or Add-ons like “Status-4-Evar”

  9. Thanks, Robert. I have enough RAM and don’t want to spend time diagnosing. If it’s not one script it’ll be another. I’ve installed Chrome and will give it a try. I wonder if the sandboxing of tabs can do any good if there isn’t some kind of resource meter to pinpoint tabs that hog resources. If there’s no meter, perhaps the only way to deal with such problems is to restart the browser, and then we’re back to Square 1. Or not. Empirical question.

  10. Jonathan: If you use the “Don’t Load Tabs Until Selected” option you have the option to step on the land mines one at a time.

  11. I agree. I have no idea why all tabs – why the entire browser – can be frozen by a runaway thread associated with processing the content of any one tab. Any reasonable software architecture that manages the threads would not allow this. Yet, it is happening with Firefox – because you all have said so! – and it happens within my Mac Safari as well.

    I’d blame it on the OS, but all other applications continue to work normally even while the entire browser application is frozen, non-responsive and unusable. I always blame Javascript because I hate it, so I will simply blame the deficiencies of Javascript for this, and sleep comfortably at night.

Comments are closed.