03.14.10

Good riddance (or, Mork history is dead)

Posted in Camino, Software at 1:40 am by Smokey

One of the worst technologies of the old Mozilla was the Mork “database” format. Famously derided by jwz as “the single most braindamaged file format that I have ever seen in my nineteen year career,” Mork was mostly hated by Camino users for fun build and component registration bugs that caused history loss.

Finally, though, our long Mork nightmare is over. Saturday evening I landed Christopher Henderson’s patch to convert Camino’s history implementation to use the Places backend, thereby sunsetting the last of the three Mork-based history implementations in the Mozilla world.1 In addition, this means that the old XPFE autocomplete code (which we never wanted to use, anyway, and which Daniel Weber mostly replaced last summer) was completely unused, and we could stop linking and shipping it. Now all that’s left in Camino of the Bad Old Days Mozilla Technologies is the RDF chrome registry,2 and that will be gone soon enough, too.

We’re very excited to see this day come; it has been a long month-and-a-half from initial patch to checkin (and nearly a month before that for Christopher to write the patch). Now that the patch is in, however, the way forward on other projects is is no longer blocked. Hopefully by the end of the weekend, time permitting, we’ll have a new experimental build available, and we’ll be able to start landing things in a new repository and stop juggling large patches. For now, though, please join in celebrating the end of Mork history and in thanking all of the Camino developers past and present who have played a role in the history format’s ultimate demise.

N.B. For those of you using Camino nightly builds, please note that the first startup with Mork-less nightlies might be slower as your Mork history.dat is converted into a new places.sqlite; this will be especially noticeable for those of you who keep months or years of history.

        

1 XPFE (Mozilla Suite/SeaMonkey 1.x) and Toolkit (Firefox) both had their own global history implementations using RDF as a layer on top of Mork, and Camino had nsSimpleGlobalHistory.cpp that interfaced our Cocoa UI code directly with Mork, avoiding the RDF middle-man.
2 My favorite bit of RDF chrome registry documentation is “Unfortunately, the RDF schema for contents.rdf is not really documented. The best way to learn it is to copy an existing example.”