« previous: Secure Remote Backups via rsync | next: Simple Linux Process Accouting »
Running Mozilla or Firefox with plugins (flash, mplayer, gxine, helix, realplayer, etc) on Linux results in frequent browser crashes. I’m not sure if it’s the plugins that are buggy, or the browser -- though I suspect it’s the browser since it’s not limited to any single plugin -- but the fact that the plugins aren’t forked into a separate process in the first place definitely is a browser bug. There are always going to be buggy plugins that crash, so running plugins within the core browser process is obviously a terrible idea. From filing bug reports in Mozilla’s bugzilla about this problem, I’ve read that correcting this massive and fundamental design flaw will require massive code rewriting which isn’t going to happen anytime soon. In the meantime we need a way to browse the web stably on Linux.
My solution is to install both Mozilla and Firefox on my system. I run Mozilla with no plugins at all, and use it as my normal browser. In Firefox I do install plugins, and I only run Firefox when I need to access a site’s plugin-based content. As a result, Mozilla almost never crashes, and Firefox crashes daily, but that’s OK because I don’t do anything important in Firefox: that’s the whole point. (Of course you can reverse the browsers; I like Mozilla better so I use it as my main browser.)
So we need to determine where each browser is loading its plugins from. First of all, go to about:config (in both browsers) and enable plugin.expose_full_path so that the about:plugins page will show the full path to the plugins on your system. That way you’ll know exactly where to go to delete/move the plugins from.
As of October 2005 on my Gentoo system, this is where plugins are located:
/opt/netscape/plugins/ :/usr/lib/nsbrowser/plugins/ :plugins are stored here, but neither Moz nor FF uses this folder directly
both Moz and FF read plugins from here (it doesn’t actually contain the plugins though, just links into the /opt/netscape/plugins/ directory)
/usr/lib/mozilla/plugins/ ,
/opt/mozilla/plugins/ :only Moz uses these
/usr/lib/mozilla-firefox/plugins/ ,
/opt/firefox/plugins/ :only FF uses these
So, I put my plugins into one of the FF-only directories. Then I keep all of the following directories empty, so that Mozilla has no plugins:
/usr/lib/nsbrowser/plugins/
/usr/lib/mozilla/plugins/
/opt/mozilla/plugins/
Finally, I also delete the libnullplugin.so file from Mozilla’s directories: that way you don’t get the annoying "click here to install this plugin" dialog every time you visit a page with plugin content in Mozilla.