The life and times of a Firefox update
May 5th, 2006I thought it would be interesting to explain the lifetime of a Firefox update. In this post we will explore from the point at which the build is finished, the mirrors are all staged, and the update is finally dropped into place.
The Web Developer
At the heart of a Firefox is the Automatic Update Service (AUS). AUS was written by Mike Morgan. Firefox will periodically (roughly once a day) check AUS for updates. Most of the time nothing is returned, just a blank XML file signifying that there are no updates. However, on special days, such as release days, the XML file returns a valid update.

The update.xml will contain a URL to download.mozilla.org (DMO). DMO is powered by a tool called bouncer, which was also written by Mike Morgan (along with Lars Lohn and Scott Kveton). Bouncer does random, weighted, mirror distribution for our downloads. We give the mirrors with more bandwidth more weight and then they get more traffic. This way we can accommodate mirrors of any capacity.
The Mirror Admin
For some reason these guys have bandwidth to burn, and love doing it.
The mirrors are our only method of distribution, and their contributions are vital for Firefox’s existence.
The Infrastructure
AUS and bouncer are hosted at the Open Source Lab, here at Oregon State University.
AUS is load balanced across about 10 servers. We could host it on one if we wanted to, but why not be safe?
The community
I used to think it was the best thing ever when I saw people around campus wearing Firefox shirts (people I didn’t even know!)… but now I get the most joy when I hear people, like tenant Emily, saying they just got a Firefox update. This is because it can be reduced down to something that is provided by a close group of friends (and co-workers).
Many people don’t realize that every Firefox update on the planet goes through software that was written by Mike Morgan, servers that are hosted at Oregon State University, and mirrors that are kept by the most generous sysadmins you’ll ever find.
Surely there are many more people that make this happen, but it’s still rewarding to know that we play a vital part in something so huge.








May 5th, 2006 at 5:05 pm
I didn’t write _all_ of AUS — a lot of the hard stuff is the patch generation and build data that comes from a hard-working build team (the programmer formerly known as Chase, preed, coop, etc.). :)
Awesome article, Alex!
May 5th, 2006 at 5:18 pm
You need to include in your story the part about how the build team “cheerfully” generates hundreds of updates for each platform and locale combination.
It involves a lot of happy-fun-scripts.
And vodka. Plenty of vodka.
May 5th, 2006 at 6:00 pm
Ok man… you seriously need to post more with this type of content. Great read, and I got a good laugh out of those photo’s.
May 5th, 2006 at 7:20 pm
Thirds-ed.
May 5th, 2006 at 9:12 pm
What happens if a user doesn’t run Firefox for a while… will they miss the “release days” when the XML update is posted?
May 6th, 2006 at 12:29 am
I agree with Robert. This was a very interesting look into some behind-the-scenes work of Firefox. You should do more of these.
May 6th, 2006 at 1:26 am
Great post, Alex! (OSUOSL rulez, of course).
May 6th, 2006 at 11:05 am
Jason: The XML file, once posted, will never go away. Firefox will ping a client specific (version, build id, platform) URL looking for the update. In other words, once the update is posted it’s just a matter of time until Firefox finds it.
May 6th, 2006 at 10:50 pm
I’m wondering what’s the greatest throughput you can afford,imagine that someday in the future Firefox get billions of users worldwide(which is highly possible),and one day a new update is released….
May 7th, 2006 at 7:01 pm
“I get the most joy when I hear people, like tenant Emily, saying they just got a Firefox update.”
This is absolutely charming news to me (even more charming than hearing the little boy at Installfest 5 look at the Firefox poster and say “Foxfire.”). So, the next time you’re having an “off” day (Note: Alex Polvi/ Landlord Extraordinaire doesn’ have “bad” days), to cheer you up I will just remind you that I have the latest version of Firefox, 1.5.0.3 and beyond!
May 9th, 2006 at 3:24 pm
[...] http://alex.polvi.net/2006/05/05/the-life-and-times-of-a-firefox-update/ [...]
August 1st, 2006 at 3:58 pm
Don’t you just love it, when you have a dozen pages up, and are switching between them trying to get something to work, and Firefox offers to update itself for you, all because you forgot to download the latest nightly.
I am soooo polite, it even makes me feel sick