Why we broke BBC's iPlayer site
my.opera.com
my.opera.com
edit: looking into it, it seems that the tech behind this is http://www.opera.com/docs/browserjs/
This incident highlights an exceptional situation where the fault was Opera's. However, in most cases it is not so.
##Edited post to elaborate on my point.##
Some of the patches target common scripts (especially unmaintained ones like all those "hot" DHTML menus and WYSIWYG editors full of browser sniffing and hacks), so few lines of browser.js can fix thousands of sites.
Although it sometimes backfires, most often it offers a fix without the rewrite-engine—release—everyone-upgrades cycle :)
I'm sure this has driven developers crazy when they can't figure out why the site works differently in IE on the production domain than on a test one.
From the manufacturers perspective, it could be deemed cheaper to write "single-purpose" fixes for such scenarios, versus responding to the backlash of consumers which decide to use the product in such scenarios.
How is this a browser bug? I expect all script tags to execute when they are parsed, and make sure to trigger DOM-touching scripts only after the DOM reports being ready.
I guess Opera looks at it from "Hixie" perspective: if 3 out of 4 engines do this and sites rely on it, then that's the standard.
I read this as working like IE6 loading a standard SCRIPT tag in HTML. When the parser hits it all HTML parsing stops, waits for the script to download, parse, and run, then resumes. While slow it works for inline HTML parsing.
Dynamically loaded scripts, such as what Opera is describing, shouldn't cause the HTML parser to pause while the script is downloading and parsing. IMO this is a pretty big bug considering how popular dynamically appending scripts has become (eg Google Analytics async loader).
I mean, how many man-hours were wasted (for Opera and the BBC) as a result of this bug alone?
At one time a company spokesperson said that they'd considered open sourcing the engine, but they didn't think their development process or income model made it a viable choice.
That's not my opinion, mind you.