Are we there yet?

The current focus of gngr development is to improve CSS 2.1 layout support. We run the test suites from W3C using an automated tool.

CSS2.1 test results

(lower is better)

Pic 1

Change Log Atom feed

Log message

Total progressions in gngr: 87, regressions: 7

  • improvements to generated content. progressions: 21
  • updated jstyleparser to lastest commit. fixes bug in selectors with multiple pseudo-elements. progressions: 1
  • better handling of table anonymous boxes. progressions: 31, regressions: 3
  • support for display:inline-table. progressions: 34, regressions: 3

Total progressions in gngr: 75

  • ensure display:table-column and tabe-column-group are parsed and displayed correctly. progressions: 4.
  • preliminary support for :before and :after. 20 Progs, 7 Regres.
  • changes related to min/max width and height. progressions: 32, regressions: 1.
  • updated to latest jstyleparser. progressions 19.
  • support auto margins for relative elements. progressions: 0. But helps center wikipedia's hero element.

gngr: many layout improvements. Total progresssions: 137

  • changed the default margin of common elements to 1em This matches the expectation of the css21 tests, and seems to be what other browsers are using. progressions: 81
  • reduce table available width by row-group border width progressions: 6
  • different algo for computing origin for an absolute positioned element progressions: 3
  • table layout: consider border insets when expanding/shrinking columns progressions: 32
  • repaint table-row-group when image is loaded Progressions: 6
  • Account for scrollbar thickness when computing width/height of pos renderables progressions: 2
  • compute maxy differently progressions: 7

Improvements to gngr's table layouting

  • table layout: support for row-groups.
  • 26 progressions
  • 4 pseudo-regressions (reference test now renders correctly)
  • table layout: default cellspacing is now 0 (+188)

Improvements to gngr layouting

  • apply auto styles only for static elements (+9)
  • Background of root element should fall back to body element (+4)
  • Updated tests to latest nightly (gngr run, firefox run pending)
  • better table support
  • Recognize table rows and cells by display property, instead of tag names
  • Recognize more units for table cell width, height, etc Progressions: 2 Semi-regressions: 6, caused by better rendering of tests
  • handle "auto" for top, bottom, left, right, width, height properties of absolute/fixed elements (+36)
  • Use previous render state as a fallback when computing font spec Progressions: 20 Semi-regressions: 10. These are caused because:
    • the correct font computation results in larger fonts which causes more pixel differences
    • one of the test results in a scrollbar (because of the larger font).
  • Fixed background image offset calculation (+6)
  • relative positioning: handle auto values for left and top correctly (+3)
  • Fit floats on same line whenever possible (+7)
  • honour font-size:0 (+39)

Improvements to gngr layouting

  • support for min-width and min-height (+35)
  • support for none in max-width and max-height (+2)
  • Detect XHTML and use XHTML specific element matcher (+9)
  • support for css vertical-align (+5)
  • updated jstyleparser, correct impl of helperTryBoth

Meta updates

  • Stricter image comparison
  • gngr: disable rendering hints (aliasing) while testing
  • updated css21 test suite to latest nightly

many fixes to layouting in gngr

  • update to latest jstyleparser that fixes parsing of edge-cases
  • make "utf-8" the default charset
  • implement position:relative for inline elements
  • compute x-height of font
  • honor the css width/height for table cells
  • support for transparent color
  • infer border color
  • implied border width
  • margin-collapse
  • fix to CDATA parsing, 3 regr, 3 progr
  • fix for color inherited from html element
  • update jstyleparser with fix for numbers in id selector
  • fix for invalid color specs in jstyleParser
  • dpi fix, progressions: 29
  • correctly marked two failures in gngr
  • fix border-style:hidden

update testcases to latest nightly build


Lenient matching of pixels in screenshots.


First stable gngr baseline


Removed background color definition for body element. See gngr GH-181