Comment 41 for bug 448686

Revision history for this message
In , L. David Baron (dbaron) wrote :

So the functions that are specific to drawing table borders are nsCSSRendering::DrawTableBorderSegment and DrawSolidBorderSegment in nsCSSRendering.cpp. In particular, if you look at DrawSolidBorderSegment:

http://hg.mozilla.org/mozilla-central/file/bcb580c05f4c/layout/base/nsCSSRendering.cpp#l2829

I think (based on reading the code):
 * the DrawLine case never gets hit (because the code is clearly broken, and
   because it should have been checking == aTwipsPerPixel rather than ==1)
 * the FillRect case is the reason that the borders are still being drawn
   correctly when they're one pixel wide
 * the FillPolygon case is what's broken
but it would be nice to confirm this.

Then the next step would be coming up with a simpler testcase (on top of the X APIs directly, or if that's too hard, at least on top of just cairo) that exhibits the same bug on this driver.