The Mozilla
At A Glance
Get Involved
License Terms
Developer Docs
Module Owners
Get the Source
Build It
Report A Bug
Bug Writing
View Source
Tree Status
New Checkins
Submit A Bug

The Gecko BugAThon

Help save Gecko engineers from imminent doom!


What is the BugAThon?

A call for volunteers: a quick check in Bugzilla shows that Tom Pixley, Chris Karnaze, Kipp Hickman, and Eric Pollman currently have 371 open bugs between them, of which 300 have blank status entries and need to be decomposed to a simple test case. Collectively, they are The Most Doomed of the Doomed.

Do you care about web standards? Do you hate working around browser bugs? Don't just stand there--with engineers bleeding by the side of the road to shipping Gecko, are you going to be the Philistine or the Good Samaritan?

You can help, and you don't need to be a C++ engineer! Simplifying bug reports to the simplest possible test case doesn't take too long per bug, but when you've got this many bugs, it really adds up. And every hour Gecko engineers spend decomposing bug reports is an hour they can't spend on FIXING bugs. The more bugs net volunteers simplify, the faster Gecko engineers can fix them, and the fewer bugs we'll ship!

So, in the spirit of public television telethons, here's the deal: if you sign up and decompose to a simple test case the listed number of bugs to the owner's satisfaction, you will earn the listed valuable reward:
Pledge Level Reward
5 bugs invitation to the Gecko launch party
10 bugs the invitation, plus an attractive Gecko stuffed animal
12 bugs the invitation, plus an attractive Gecko stuffed animal autographed by Rick Gessner, the Father of Gecko
15 bugs the invitation, plus a Gecko T-shirt
17 bugs the invitation, plus a Gecko T-shirt signed by the grateful engineer
20 bugs the invitation, plus a Gecko T-shirt signed by the whole raptor team

What is a Simplified Test Case, and How Do I Sign Up to Make One?

A simplified test case means the simplest possible web page that still reproduces the bug. If you remove any more characters from the file of the simplified test case, you no longer see the bug. To turn a web page that shows a bug into a simplified test case, you:
  1. Open a Bugzilla account and download the latest milestone build of the Mozilla browser.
  2. To claim a bug, choose one of the open bugs from the search links below and enter [MAKINGTEST] and your email address in the "Status Whiteboard" field so others know you've claimed it and effort isn't duplicated.
  3. Download the web page that shows the bug to your local machine.
    • Make sure to download any linked JavaScript .js files, CSS .css files, frameset .html files, or image files as well. You can find the names of those files and figure out the URLs to get them by doing a View-->Page Source on the main page. For example, if contains an IMG link to mypicture.jpeg, you'll want to type into the browser, then right click over the image and Save Image As ... to the same directory you put resume.html in.
  4. Using a text editor (like Notepad on Windows, SimpleText on the Mac, or vi or emacs on UNIX), start removing HTML markup, CSS rules, and lines of JavaScript from the page. Start by removing the parts of the page that seem unrelated to the bug. Every few minutes, check the page to make sure it still reproduces the bug.
  5. When you've cut away as much HTML, CSS, and JavaScript as you can, and cutting away any more causes the bug to disappear, you're done. Attach the test case to the Bugzilla bug report (as a ZIP file if the test case includes multiple files) and mark the bug [TESTCASE] in the "Status Whiteboard" field so engineering knows the bug is ready to be crushed.

The Rules

Please only claim five bugs at a time and decompose those five bugs to test cases before you claim the next five. This is to prevent people from signing up from 20 bugs, procrastinating, and then dropping out of the BugAThon, which would prevent others from claiming the bugs and the prizes.

The fine print:

  • bugs resolved as DUPs (duplicate of another bug report), WORKSFORME (when you do the test yourself, you don't see the bug), and INVALID (reporter misunderstanding or other problem with the report) instead of as valid with a simplified test case only score as half a bug each. Example: 9 valid bugs with test cases plus 2 DUPs plus 4 WORKSFORME count as 12 "finished" bugs and earn you an autographed stuffed animal.
  • If a testcase already exists as an attachment or is referenced within the notes and you verify that it's definitive and can't be simplified further, that counts.
  • If you get all the way up to the group-signed T-Shirt, you *can* qualify for a stuffed animal as well by doing 12 more.
To qualify as a finished bug, the bug must be completed with:
  • an attached simplest-as-possible test case
  • the summary line updated if necessary
  • a status message reading [TESTCASE] plus a statement of what needs to be fixed to the extent you can explain it
  • the description written up in accordance with the mozilla bug writing guidelines at
  • the engineer's verbal agreement to me (when the prize is claimed) that it's been decomposed satisfactorily
When you're ready to claim your bounty for squashing your bugs, email with:

i) your name
ii) your physical mailing address
iii) your list of finished bugs
iv) your score (iii modified for DUPs/WORKSFORME/INVALID)
v) the reward(s) you're claiming
vi) your T-shirt size if claiming a T-shirt

So it's a race! The easiest bugs will go first, so act now to claim and crush YOUR bugs. Ladies and gentlemen, start your browsers!!!

How to Find Open Bugs that Need a Test Case

Use these links to find open bugs that need a test case:
Engineer Email Typical Bugs on this List
Vidur Apparao vidur JavaScript Document Object Model: DOM0, DOM1, DOM2 CSS Interface
Tom Pixley joki DOM 2 Events
Chris Karnaze karnaze Table Layout; CSS
Eric Pollman pollmann Layout; Frames
Nisheeth Ranjan nisheeth XML
Andrei Volkov (fully expand or you'll get travis's bugs too) Mozilla Plug-in API
Kipp Hickman kipp

Or, if you prefer, you can go to and manually search with these parameters:
Status NEW or ASSIGNED or REOPENED [select all 3]
Email karnaze Assigned To
Status whiteboard (\w*\W*)*(\[TESTCASE\]|\[DONTTEST\]|\[NOTESTCASENEEDED\]|\[MAKINGTEST\]|\[HAVE)(\w*\W*)* not (regular expression)

Substitute another email address from the list above to find another engineer's bugs.

If you want to look at [TESTCASE] bugs (bugs which already have a finished test case), you can use these links: Vidur, Tom, Chris, Eric, and Kipp.

What Do All Those Codes Mean? What Codes Should I Use?

For a complete, up-to-date list of codes used in Bugzilla bug reports, see code definitions for bugzilla. Here's a brief summary of the codes most relevant to the BugAThon. Hints for proper code usage:
  • codes are preceded and followed by square brackets (e.g. [LAYER], not LAYER)
  • codes should be in all-caps (e.g. [LAYER], not [Layer] or [layer])
  • codes should use alphanumeric characters (A..Z0..9) only; don't use special characters like hypens, periods, colons, apostrophes, etc.
  • in multi-word codes, just jam the words together; don't separate them with spaces, hyphens, etc. (e.g. [DONTTEST], not [DONT TEST])
There are exceptions to these rules based on historical usage. code definitions for bugzilla is the definitive reference when in doubt.

These codes are used in the Summary field to describe a bug:
Code Meaning
[4.xP] Because of this bug, Mozilla is not currently backwardly-compatible with the behavior of Navigator 4.x. (The code stands for "4.x Parity.")
[LAYER] This tag has two meanings. Rarely, it means "Mozilla is not ignoring the LAYER tag, as it should." But usually it means "This bug is INVALID; the page lays out poorly because it uses the LAYER tag, ILAYER tag, document.layers[], document.all(), and/or related proprietary features of Navigator 4.x markup and the Navigator 4.x DOM or the IE DOM." See Update: All LAYER, ILAYER, document.layers[], document.all(), and User Agent Bugs Must Be INVALIDated! for more about this.
[USERAGENT] This bug is INVALID; the page lays out poorly because the site is failing to detect the Mozilla/5.0 user agent string and returning a page that is optimized for some other browser.

These codes are used in the Status field to describe a bug's status in the BugAThon:
Code Meaning
[DONTTEST] For some reason, this bug does not need a test case, so no one should sign up to create one. For example, this bug might be a reminder from engineering to itself that internal changes need to be made in the code. Putting [DONTTEST] in the Status field removes the bug from the lists of bugs that need test cases.
[MAKINGTEST] A volunteer has signed up to create a test case for this bug. Putting [MAKINGTEST] in the Status field removes the bug from the lists of bugs that need test cases. It should be followed by the volunteer's email address so we know who signed up.
[TESTCASE] A volunteer has finished a test case for this bug. Putting [TESTCASE] in the Status field removes the bug from the lists of bugs that need test cases

Update: Vidur Apparao added to the BugAThon for Document Object Model Bugs!

Just two weeks ago, Vidur was concerned that he didn't have enough Document Object Model (DOM) bugs filed against him, and he even asked me to help get more people testing our DOM support.

What's the DOM? The DOM is the object model of HTML elements on the page which we access from JavaScript. It has three levels:

  • The DOM level 0 has no formal definition, but it refers to the core browser DOM for forms, frames, windows, and events that was supported by Nav3 and IE3. It's important to make sure Gecko's support for DOM0 is solid to avoid breaking the JavaScript pages that are out on the web already. The DOM0 includes HTML document objects like document.forms[index], images[], applets[], links[], forms[], and anchors[]; document methods like open(), write(), and close();  the window object and methods; and HTML events such as onclick, mouseover, and onsubmit.
  • The DOM level 1 is the industry standard Document Object Model formally defined by the W3C with Core language-independent features (such as the Node interface for getting and setting attributes) as well as HTML-specific features, many of which are also considered "DOM0" functionality.
  • The DOM level 2 is currently under development. It adds features such as event capturing, handling, and bubbling and the ability to set style sheet properties.
In a classic example of how you should be careful what you ask for, suddenly Vidur's open bug count has jumped from 40 to 112--and I haven't yet lifted a finger! Vidur swears he didn't have one too many at the cantina before the last milestone. We have our doubts, especially because he was in charge of moving the bottomless keg from Building 22 to Building 21, and we think he may have taken personal responsibility for "cleaning it out" before the move. (Vidur's a very conscientious guy, you see.)

We'll be watching Vidur (and the keg!) more closely in the future. In the meantime, Vidur is now Respectably Doomed, and in sympathy, we're adding him to the BugAThon. Do you know JavaScript? This is the perfect chance for you to help. We need to get Vidur's open, no-status bugs reduced to simple-as-possible test cases. That means stripping out as much JavaScript and HTML from the test page as you can while still reproducing the bug. The less time Vidur spends simplifying bug reports, the more time he can spend fixing bugs.

And let's face it: we JavaScripters have a real interest in getting these bugs fixed. The more DOM bugs Vidur fixes, the fewer we'll have to work around when the product ships! So let's spend time now to find, fix, and simplify DOM bugs instead of spending time after the release working around them! JavaScripters, let's simplify Vidur's open, no-status bugs today!

P.S. The usual disclaimer about DOM support in Gecko: Gecko will fully support DOM0 and DOM1. There is no commitment to support any of DOM2 in the first release of Gecko or Nav5, but some support is in the current builds and we of course welcome bug reports regarding that functionality.

P.P.S. When you file new Document Object Model bugs in Bugzilla, be sure to use the correct component:
Component Meaning
DOM Level 0 Incompatibilities with the DOM of Nav3. (Mark [4.xP] in the Summary field.)
DOM Level 1 Incompatibilities with the W3C DOM1 specification. (Mark {dom1} in the Summary field.)
DOM Level 2 Incompatibilities with the latest working draft of the under-development W3C DOM2 specification. (Mark {dom2} in the Summary field.)
JavaScript Engine Don't file DOM bugs against "JavaScript Engine"! The JavaScript Engine component is only for core JavaScript (ECMAScript) language and interpreter bugs

If you haven't already, please read the description of what each Browser component name in Bugzilla means.

Update: All LAYER, ILAYER, document.layers[], document.all(), and User Agent Bugs Must Be INVALIDated!

If you hit a page that doesn't display well or has JavaScript errors in Mozilla because the page uses MS IE4/5 DOM features, Nav4 Layer DOM features, or the LAYER/ILAYER tag, don't file a bug in Bugzilla. Mozilla won't support these proprietary features. (See for details.) Instead, use the below email creation templates to send an email to the page's owner asking them to upgrade the page to support W3C standards.

If you are examining a bug report in Bugzilla and realize that it's caused by these issues, please do the following:

  1. Code the bug [LAYER] in the Status field so we can track which sites have these problems.
  2. Resolve the bug as INVALID.
  3. Use the below template pages to send an email to the bug reporter and the web site owner informing them of the need to upgrade the page to support standards.
You can really help (and Vidur in particular) by finding and INVALIDing these erroneous bug reports. This will help keep Vidur's plate clean so he can focus on real DOM bugs.

If the page supports IE4/5 but not HTML 4.0/W3C DOM, use this template:

If the page supports Nav4 but not HTML 4.0/W3C DOM, use this template:

If the page is breaking because of user agent detection problems, use this template:

Use the "user agent" template when a page doesn't work or has a JavaScript error because the client-side JavaScript isn't detecting the Navigator 5 Mozilla/5.0 userAgent string, or when a server-side CGI is returning the wrong page because it's not detecting the Mozilla/5.0 HTTP USER_AGENT string or is choking on the HTTP 1.1 CONTENT_TYPE string (which is now off by default, and may well stay that way).

Hint to avoid filing bogus bugs: if content on a page doesn't position correctly or there's a JavaScript error, do a View Source and look (or copy and paste and search in a text editor) for the strings document.all and layer (case insensitive). If you find those strings in the JavaScript or the HTML markup, think twice before filing a bug. Create a simplified test case without the proprietary features and see if the problems still occurs.

Update: Add the BugAThon Banner Ad to Your Site!

Glenn Davis of has kindly given us this banner ad to help promote the BugAThon:

Please add the banner ad to your web pages! To add the banner ad to a web page:

  1. place the mouse cursor over the image, right-click the mouse button, and choose "Save Image As ..." from the popup context menu that is displayed
  2. save the image as bugathon.gif in the same directory as your web page
  3. add the below HTML to your web page
<center><a href="">
<img SRC="bugathon.gif" height=60 width=468></a></center>

Update: Gecko BugAThon Deadline Eliminated!

The BugAThon is going great! Look at these displays of major heroism:
  • In just the first two weeks of the effort, we cut Chris Karnaze's open, no status bug list from 164 on 6/23 to 47 on 7/6!
  • Ian Hickson stayed up until 5:40 a.m. and simplified 18 bugs the first night of the BugAThon, and has processed over 42 bugs to date total!
  • Sam Allen's resolved 35 bugs as DUPs!
  • Look at all these test cases we've created for Tom, Chris, Eric, and Kipp!
... and read these comments from participants:
  • "As a result of announcing the bug contest, I've gotten a bazillion bugzilla notifications today." -- Chris Karnaze
  • "The thing is, I am quite happy to work for Mozilla just to get a decent, free, standards compliant browser onto the market. That is an incentive in itself. The rest is just a bonus...." -- Ian Hickson
  • "Glad I could help. I've made a recent move from HTML/JavaScript/CSS development to QA and was glad to get some practice in. I would be happy to do some beta testing in the future as well if you need it." -- Erin Pierce
Because the BugAThon is going so well and so many people have expressed interest in participating going forward, we're eliminating the August 15th deadline and making the BugAThon an ongoing effort. (Rick and Eric aren't guaranteeing that we'll buy and mail stuffed Geckos until the end of time, but we're eliminating the August 15th deadline and will keep awarding prizes for the foreseeable future.) Welcome to all new Net contributors!

Disclaimers: Conditions subject to change without notice. Rewards subject to substitution with goods of equivalent value. All decisions are final. This is not an official contest. It is not sponsored by, Netscape Communications, or America Online; it is an incentive program to recognize Internet volunteers which is being run by Rick Gessner and Eric Krock directly.

Copyright © 1998-2000 The Mozilla Organization.
Last modified December 20, 1999.