For those that only care about the current state of affairs – this problem has been addressed from both ends. It was classified as WebKit bug, fixed by an Apple engineer, and landed in WebKit Open Source the day after I reported it. I worked around the problem by writing my own version of WebKit’s WebBackForwardList class, and using it instead.
Neither fix has been officially released at this moment in time. I’ve posted a 10.3.6f1 build for my beta testers to pound on. I am not privy to information regarding when WebKit Open Source fixes actually get rolled into a Mac OS X software update. I’m guessing that my fix will be out the door first.
The longer, probably only of interest to developers version:
Shortly after hearing about this problem and reproducing it myself, I needed to find out what was really going on. This meant building the latest WebKit from source, and then reproducing the crash in the debugger. The problem was pretty obvious at that point, and that it would be a pretty easy fix for the WebKit folks to make – should they decide to. I could also see there was no good work around for me, at least if I wanted to continue to use the same WebKit’s APIs.
Armed with the actual facts, I filed my bug report with Apple, and posted the “Don’t install Safari 5.0″ warnings here and in our forums. Soon afterwards, I got an email from an Apple engineer (the one that ended up fixing it) telling me he knew why the crash was occurring (I knew at that point as well). We discussed possible work arounds. A couple hours later, I get the standard “We’re looking into this” courtesy email from Apple Developer Support. Gotta be the fastest response to any radar I’ve filed…
But by then it was really a no-brainer. Just write the code I need and fix it myself. I mean, pretty basic stuff – a couple hours work maybe. Waiting was not an option.
Thanks to Apple for getting to this so quickly! Bummer it happened in the first place, but that’s life.
Anyway folks, hang in there a couple more days while the beta testers do their thing.