Sharing XULRunner between applications

Published on 14 August 2008

Matthew Gertner proposes that all XULRunner applications (including Firefox) should share the same XULRunner instance. While it's very natural on Linux, I don't think it's reasonable on Windows and Mac to expect multiple application to run on the same runtime. That would force Mozilla to keep backward-compatibility, and that's a big pain in the neck. Ask Microsoft about backward compatibility in Windows: over the year, they had to simulate bugs from older Windows versions to prevent breaking older applications. Imagine Firefox 3.1 is released, and requires a newer version of XULRunner. You install Firefox 3.1, in order to do that you upgrade your XULRunner. Well, the Songbird folks may not have tested their bird with the latest XULRunner, and it may break. If it does, you're stuck: either you give up on the latest Firefox, either you give up on Songbird. That works on Linux because a single actor (the distribution) gets to pick what version to include, test to make sure it works, and patch stuff if necessary. In the Windows and Mac world, there is no one single repository and people get their software directly from upstream, so if you go down the path of dependencies it's going to be a hell of conflicts... Unless Mozilla guarantees a full backward-compatibility, which is a lot of work because it requires testing. Of course, that doesn't mean applications shouldn't be designed to allow runtime sharing. But I can guarantee that even when that happen, everyone (Firefox, Songbird, Thunderbird) will be bundling their own XULRunner runtime, just like they're doing today... Except for the Linux distributions.
TAGS: browsers