Chad Perrin: SOB

19 August 2008

Has Firefox jumped the shark?

Filed under: Geek,Mezilla — apotheon @ 07:01

A while back, I got frustrated with the lack of search functionality in the Firefox “Exceptions – Cookies” dialog. See, I have my cookie handling preferences set to “Accept cookies from sites” and “Keep until: ask me every time” because I like to know what cookies are being saved on my computer (and have the option to say “Hell no, I don’t want any cookies from!”). Unfortunately, if for some reason I need to allow a cookie that I had previously denied, it’s a severe pain in the behind to find that cookie.

I mean, sure, it’d be easy in the “Exceptions – Cookies” dialog to change the setting for the specific cookie whose setting I need to change, if I had the domains of every cookie in the exceptions list memorized. I don’t, though. Thus, if for instance a cookie for got denied and I need to allow it so I can view something in Google Docs, but I don’t remember that domain — I just figure I must have accidentally denied a cookie with “google” in it somewhere — I have to scroll through the whole list parsing it by eye to find the one I need. With almost 1000 cookie policy exceptions in the list, that gets really tedious really quickly.

. . . and of course, the people at Mozilla seem to be entirely incapable of realizing someone might want a useful search feature for this dialog. Well, I decided to solve the problem myself. I wrote a program in ruby I call fxception — a command line utility that just does a quick text search and spits out the exception status of each cookie source domain in the list.

So, the Mozilla project released Firefox 3.0. It has all kinds of new features. They also changed something about the way cookie policies are managed.

Did they add in some useful search functionality? No, of course not.

They put the cookie exception policies into a damned binary database file, thus ensuring that there’s no quick and easy way to write your own search tool, since the Mozilla project won’t give us a search tool.

. . . and I can’t figure out a good reason to have put the cookie exception policies into a binary database file. I’m really far outside the average, and I still only have about a thousand exceptions. A flat file can handle that just fine. Using binary file formats is a great way to just make interoperation between tools more difficult — which is suspiciously like the way Microsoft seems to operate. How badly has Mozilla lost the plot?

Argh. If you ask me, the apparently steady and inexorable march toward greater bloat, more unnecessary binary format files (there’s at least a handful of new *.sqlite files to replace old *.txt files), and more generated files you’re not “allowed” to touch (making portable bookmarks, for instance, very difficult to arrange without using a third-party service), looks suspiciously like a sign Firefox may have jumped the shark.

Mozilla is still the browser I dislike least, but every time I turn around, the benefit to using Firefox over other browsers gets less and less compelling. In fact, “compelling” isn’t even a word I’d use any longer. It has gotten to the point now where the benefit is small enough that, if I was using something lame and broken like Galeon or Konqueror, there wouldn’t be motivation enough to make the switch to Firefox any longer.

It has gotten to the point where all the major browsers are pretty much equally crap. In purely technical terms, Firefox isn’t even much better than IE any longer. The only thing it has going for it, aside from being distributed under an open source license (and a few of the benefits that go along with that), is its extensibility.


  1. The new binary format is an sqlite file, which can be easily browsed by sqlite3 cookies.sqlite and opened with a nice API within Ruby.

    Also my install seems to have an autogenerated cookies.txt?

    Comment by Sohum — 19 August 2008 @ 08:52

  2. The cookies.txt file in Firefox 2.x contains cookies, not cookie policy — and doesn’t exist in 3.x at all. In 2.x, these cookie policy exceptions were stored in hostperm.1, and in 3.x they’re stored in permissions.sqlite.

    I might look into the sqlite interface at some point, or I might not. I guess it depends on how much I hate the idea of the Mozilla people going in a binary file format direction in general. Right now, the answer to “how much” is “a lot”. It’s stupid and unnecessary.

    Thanks for commenting, and offering some tips on how to deal with it, though.

    Comment by apotheon — 19 August 2008 @ 10:25

  3. You haven’t even mentioned Opera at all. I find Opera to still be a good browser. It’s definitely not my first choice but rates above IE, Galeon and Konq any day.

    Comment by Joseph A Nagy Jr — 20 August 2008 @ 04:34

  4. Arguably, sqlite is the successor to plain text when what you need is structured data. For one, being able to use SQL on a local store is much nicer than reading in an array or a tree and trying to make sense of those.

    It doesn’t hurt that it’s about 500kb of tightly versioned highly optimised public domain code.

    And it’s not entirely fair to say that they haven’t provided new searching mechanisms — they’ve enabled it. That was the main point of the Places infrastructure. Firefox does bill itself on its extensions.

    Comment by Sohum — 20 August 2008 @ 04:36

  5. […] probably noticed that I’m generally pretty annoyed with Firefox. If nothing else, my SOB entry Has Firefox jumped the shark? ought to serve as a pretty big hint. My interest in the development of Chrome (as hinted at by my […]

    Pingback by Chad Perrin: SOB » Browser Choice: Flock — 12 September 2008 @ 02:51

  6. There are others who feel the same, but are struggling with ways to use Gecko 1.9.1. K-Meleon is the non-XUL browser, currently using the same Gecko engine as Seamonkey 1.1.17 (Gecko 1.8xxx). If you know of way to make Gecko’s latest engine work minus SQlite, posts on their forum would be very much appreciated.

    Here are a couple of links.,94934

    Tks for listening.


    Comment by ndebord — 16 July 2009 @ 07:26

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License