Gecko Mozilla



Mozilla

This is the closest something from Mozilla that may ever have webkit in use instead of Gecko and will be a shell and not the Firefox. The browser we know as Firefox has had Gecko as the rendering engine ever since it was Phoenix 0.1 back in Sept 2002 and it is not about to change to webkit after so long. Browser Innovation, Gecko and the Mozilla Project. Mitchell Baker The Big Picture. The goal of the Mozilla project is to promote innovation and enable the creation of standards-compliant client technology to help keep content on the web open.

You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content ishighly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. Ifthere are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.

  • Coding
  • Testing
  • Tools

The Gecko BugAThon

Maintained by Gerv
(with thanks to Bernd Mielke)

Help save Gecko engineers from imminent doom!

What is the BugAThon? (A call for volunteers)

Without help, the number of bugs submitted in the core areas of Gecko (Mozilla's Web display engine), such as the DOM, CSS, Layout etc. would overwhelm the developers.

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, are you going to be the Pharisee or the Good Samaritan?

You can help, and you don't need to be a C++ programmer! 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 that are simplified, the faster Gecko engineers can fix them, and the fewer bugs there'll be!

Writing a testcase is the best and most productive way to vote for a bug. Overworked engineers tend to focus on bug's with testcases. If a bug bothers you, why it does still not have a testcase?

Contents:

  • Tech Evangelism <layer>, <ilayer>, document.layers, document.all, and bad userAgent sniffing Evangelism!

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

Gecko

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 or, preferably, a recent nightly build of the Mozilla browser.
  2. To claim a bug, choose one of the open bugs from the search links below and, if you think it'll take you a while, comment that you are making a test case so that effort is not duplicated.
  3. Download the Web page that shows the bug to your local machine. Use the 'Web Page, Complete' option in the save dialog to download all linked files, including JavaScript (.js), CSS (.css), frameset (.html), and image files.
  4. Verify that you are not wasting your time on a tech evangelism bug.
  5. 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 commenting out parts of the page (using <!-- -->) that seem unrelated to the bug. Every few minutes, check the page to make sure it still reproduces the bug. Code not required to reproduce the bug can be safely removed.

    You'll do well if you use an editor supporting multiple levels of Undo, and better if you use an HTML-editing tool which supports preview to an external browser.

  6. 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. If possible try to replace the image links with links to images at www.mozilla.org.
  7. Attach the test case to the Bugzilla bug report. If the test case requires multiple files (and can't be shrunk by e.g. putting JavaScript or CSS in the <head>), upload the ancillary files and then change the main file to reference the URLs of the attachments. That way, the testcase can be viewed merely by clicking the link in Bugzilla. Enter 'testcase' into the Keywords12 field so engineering knows the bug is ready to be crushed.
    1 A standard Bugzilla account does not have sufficient permissions to add keywords. After you have created testcases for two bugs, mail Gerv with links to the two bugs, and I'll upgrade your permissions.
    2 Note that [TESTCASE] and similar names in the Status Whiteboard have been deprecated; if you come across a bug with a test case which has this, but not the testcase keyword, please add the keyword.

More tips and tricks

The following describes steps you can take when reducing a test case:

  1. Generated content: some content may be generated dynamically by javascript (document.write()). To view the generated code, select the content, right click (or press Shift+F10), and choose 'view selection source' from the context menu. The generated source code will be selected in the view source window.

    Sometimes, Gecko may interpretate generated content source and the equivelent raw source code differently. To see if this is the case, comment out the content-generating javascript (with /* */) and insert the equivelent source code (obtained from the view source window). Test in the browser to see if there is any difference.

  2. Table: To visualize table layout more clearly, put the following code in the <head> section to show cell borders:
    <style type='text/css'>
    table { border-collapse: collapse; }
    /* top-most tables will have red cell borders */
    table td, table th { border: 1px solid red !important }
    /* tables nested one level deep will have orange borders */
    table table td, table table th { border: 1px solid orange !important }
    /* tables nested two level deep will have green borders */
    table table table td, table table table th { border: 1px solid #00cc33 !important }
    /* tables nested three or more level deep will have blue borders */
    table table table table td, table table table table th { border: 1px solid #3399ff !important }
    </style>

    If you want to see how images interact with tables, insert the following style rule into the previous <style> code:

    img { border: 1px solid purple; }
  3. Standards and Quirks modes: Gecko will display Web pages in either Standards Compliance mode or Quirks mode, depending on the Web page document type. Press Ctrl+I the open the Page Info dialog to see the rendering mode. If the page is rendered in Standards Compliance mode, then replace the DocType definition at the very beginning of the source file with the following line:
    <!doctype html public '-//W3C//DTD HTML 4.01 Transitional//EN'>
    If the Web page then display correctly, then the Web page author probably is relying on the (incorrect) rendering behaviors of older browsers but mistakenly set the page to be compliant with the latest Web standards.
  4. Review frequently encountered 'bugs' to make sure you do not get caught up with invalid bugs.
  5. Bookmarklets: Jesse Ruderman has written some bookmarklets (small bits of JavaScript) which are very useful for reducing testcases. (E.g. 'ancestors', 'show blocks', 'view scripts', 'view style sheets' and 'edit styles'.)
  6. Real-Time HTML Editor: There is also a real-time HTML editor, for building testcases from the ground up.

How to Find Open Bugs Needing Test Cases

These links lead to bugs with several priorities for each category:

  • qawanted - developers screaming for your help
  • high priority bugs
  • unconfirmed bugs and
  • the rest

Confirmed bugs have been verified as present by QA people or entered by bugzilla veterans, and are less likely to be dupes. Unconfirmed ones, on the other hand, are usually recently submitted and are bound to be of variable quality.

Working with UNCONFIRMED bugs involves overlap with the tasks on the QA confirmation page. Very often a good testcase is the only way to triage the bug correctly.

Bugs by Component:

ComponentBug Lists
qawantedmajorunconf.others
DOM: Corequeryqueryqueryquery
DOM: Eventsqueryqueryqueryquery
DOM: HTMLqueryqueryqueryquery
DOM: Level 0queryqueryqueryquery
DOM: CSSOMqueryqueryqueryquery
DOM: Load and Savequeryqueryquery query
DOM: Abstract Schemasqueryqueryquery query
DOM: Traversal-Rangequeryquery query query
DOM: Views and Formatting queryqueryqueryquery
DOM to Text Conversionqueryqueryquery query
DOM: Mozilla Extensionsqueryqueryquery query
DOMqueryqueryqueryquery
HTML: Parserqueryqueryqueryquery
XMLqueryqueryqueryquery
Style System (CSS)queryqueryqueryquery
BiDi Hebrew & Arabicqueryqueryquery query
Layoutqueryqueryqueryquery
Layout: Block & Inlinequeryqueryquery query
Layout: CTLqueryqueryquery query
Layout: Floatsqueryqueryquery query
Layout: Fonts and Textqueryqueryquery query
Layout: Form Controlsqueryqueryquery query
Layout: HTML Framesqueryqueryquery query
Layout: R & A Posqueryqueryquery query
Layout: Tablesqueryqueryquery query
Layout: View Renderingqueryqueryqueryquery
Layout: Misc Codequeryqueryquery query
Java: OJIqueryqueryqueryquery
Plug-Insqueryqueryqueryquery
Imagelibqueryqueryqueryquery

The Tricky Ones For Plugin Paladins: The following plugins have their own special Bugzilla keywords: (realplayer and shockwave. Each of these bug lists also needs de-duping, and the remaining bugs reduced to a test case. By this, we aren't asking you to edit realplayer files or the like, but merely to remove as much surrounding HTML/CSS/JS etc. as possible.

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

For a complete, up-to-date list of keywords used in the Bugzilla keyword field, see keyword definitions for Bugzilla. Here's a brief summary of the keywords most relevant to the BugAThon.

CodeMeaning
4xpBecause of this bug, Mozilla is not currently backwardly-compatible with the behavior of Navigator 4.x. (The code stands for '4.x Parity.')
compatNot a bug, but something so commonly misused on the internet that we should provide a work-around for it. i.e., we do it right, but older browsers get it wrong.
testcaseA volunteer has finished a test case for this bug. Putting testcase in the Keywords field removes the bug from the lists of bugs that need test cases.

Tech Evangelism

Web page authors using <layer>, document.layers, document.all, or doing bad userAgent sniffing must be Evangelised!

There are pages on the web that do not display well or have JavaScript errors in Mozilla because they use javascript and HTML features proprietary to Microsoft Internet Explorer or Netscape 4. Such features include document.layers, document.all, and the <layer> and <ilayer> HTML tags. Mozilla won't support these proprietary features (see Mozilla Technology Evangelism for details).

Free

If you are examining a bug report in Bugzilla and realize that it's caused by these issues, please follow the evangelism guidelines.

Gecko Mozilla

Frequently Encountered 'Bugs'

The following lists some frequently claimed bugs:

Gecko Mozilla

  • Extra spacing between images and table cell: if a Web page is rendered in Standard Compliance mode, then by default table cells will have the minimum height of the text line height (see bug 22274)
  • Flash transparency does not work: Gecko supports plug-in transparency as Microsoft Internet Explorer does. However, Macromedia has not upgraded their Mozilla Flash plug-in to take advantage of this (see bug 93959)
  • Image ALT does not show up as tooltip: see bug 25537 comment 153.

Add the BugAThon Banner Ad to Your Site!

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

Gecko Mozilla Github

Gecko mozilla

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

Mozilla Geckoview

Gecko Mozilla
  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. and add the below HTML to your web page:
    <div align='center'><a href='http://www.mozilla.org/newlayout/bugathon.html'>
    <img src='http://www.mozilla.org/newlayout/bugathon.gif' height='60' width='468'></a></div>