Grid row heights are initially increased as dictated by cells in the row (in RenderTableSection::addCell), but later changes to cell heights are not reflected in the grid. (Once bug 3297 is fixed, this becomes more apparent since it starts affecting rows other than the first row). To reproduce: open the attached test case and click the Test button. After you click, the tables should be identical, but the table on the left maintains a taller first row due to this bug.
Created attachment 8431 [details] Test case
Created attachment 8432 [details] Patch w/test and change log tables/mozilla_expected_failures/bugs/bug222846.html no longer fails with this patch, so perhaps it should be moved to mozilla (I don't know how to represent a move in a patch).
Shouldn't this: + if (parent() && section() && (!style() || style()->height() != newStyle->height())) + section()->setNeedCellRecalc(); be: (style() && style()->height() != newStyle->height()) ? Doesn't seem like you need to call setNeedCellRecalc on a section when you don't even have a style() set yet. (The act of just adding the cell to the DOM in the first place already took care of that case I think.)
Created attachment 8445 [details] Revised patch Updated to address Hyatt's comment.
Comment on attachment 8445 [details] Revised patch r=me