diff --git a/mozilla/layout/html/document/src/quirk.css b/mozilla/layout/html/document/src/quirk.css index fa25638059a..653c2f93b16 100644 --- a/mozilla/layout/html/document/src/quirk.css +++ b/mozilla/layout/html/document/src/quirk.css @@ -110,10 +110,6 @@ table { font-variant: -moz-initial; } -/* make sure backgrounds are inherited in tables -- see bug 4510*/ -td, th, tr { - background: inherit; -} /* Quirk: collapse top margin of BODY and TD and bottom margin of TD */ diff --git a/mozilla/layout/html/table/src/nsTableFrame.cpp b/mozilla/layout/html/table/src/nsTableFrame.cpp index 97ae80e7fad..1f1a57ed62f 100644 --- a/mozilla/layout/html/table/src/nsTableFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableFrame.cpp @@ -1420,11 +1420,11 @@ nsTableFrame::Paint(nsIPresContext* aPresContext, deflate.left = BC_BORDER_LEFT_HALF_COORD(p2t, propData->mLeftBorderWidth); } } - rv = painter.QuirksPaintTable(this, deflate); + rv = painter.PaintTable(this, &deflate); if (NS_FAILED(rv)) return rv; } else { - rv = painter.PaintTable(this); + rv = painter.PaintTable(this, nsnull); if (NS_FAILED(rv)) return rv; } diff --git a/mozilla/layout/html/table/src/nsTablePainter.cpp b/mozilla/layout/html/table/src/nsTablePainter.cpp index 8a838b302f9..1d004418fef 100644 --- a/mozilla/layout/html/table/src/nsTablePainter.cpp +++ b/mozilla/layout/html/table/src/nsTablePainter.cpp @@ -44,9 +44,9 @@ #include "nsTablePainter.h" #include "nsCSSRendering.h" -/* ~*~ Standards Mode Painting ~*~ +/* ~*~ Table Background Painting ~*~ - Background painting in Standards mode follows CSS2.1:17.5.1 + Mozilla's Table Background painting follows CSS2.1:17.5.1 That section does not, however, describe the effect of borders on background image positioning. What we do is: @@ -95,12 +95,6 @@ flexibility in aligning /to/ those border widths. */ -/* ~*~ Quirks Table Background Painting ~*~ - - Quirks inherits all backgrounds below the table level into the - cells; we don't paint intermediate backgrounds. -*/ - /* ~*~ TableBackgroundPainter ~*~ @@ -360,62 +354,10 @@ TableBackgroundPainter::TranslateContext(nscoord aDX, } nsresult -TableBackgroundPainter::QuirksPaintTable(nsTableFrame* aTableFrame, - nsMargin& aDeflate) +TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame, + nsMargin* aDeflate) { NS_PRECONDITION(aTableFrame, "null table frame"); - NS_PRECONDITION(eCompatibility_NavQuirks == mCompatMode, - "QuirksPaintTable called for non-Quirks"); - - nsVoidArray rowGroups; - PRUint32 numRowGroups; - aTableFrame->OrderRowGroups(rowGroups, numRowGroups); - - if (numRowGroups < 1) { //degenerate case - PaintTableFrame(aTableFrame,nsnull, nsnull, &aDeflate); - /* No cells; nothing else to paint */ - return NS_OK; - } - - PaintTableFrame(aTableFrame, - aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(0))), - aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(numRowGroups - 1))), - &aDeflate); - - if (mIsBorderCollapse) { - /* This is a simple pass, so we'll just keep with the table coord system. */ - - for (PRUint32 i = 0; i < numRowGroups; i++) { - nsTableRowGroupFrame* rg = aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(i))); - nsRect rgRect = rg->GetRect(); - if (rgRect.Intersects(mDirtyRect) && !rg->HasView()) { - for (nsTableRowFrame* row = rg->GetFirstRow(); row; row = row->GetNextRow()) { - nsRect rowRect = row->GetRect(); - rowRect.MoveBy(rgRect.x, rgRect.y); - if (mDirtyRect.YMost() > rowRect.y && //Intersect won't handle rowspans - !row->HasView()) { - for (nsTableCellFrame* cell = row->GetFirstCell(); cell; cell = cell->GetNextCell()) { - mCellRect = cell->GetRect(); - mCellRect.MoveBy(rowRect.x, rowRect.y); - if (mCellRect.Intersects(mDirtyRect) && !cell->HasView()) { - nsresult rv = PaintCell(cell, PR_FALSE); - if (NS_FAILED(rv)) return rv; - } - } - } - } - } - } - } - return NS_OK; -} - -nsresult -TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) -{ - NS_PRECONDITION(aTableFrame, "null table frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must call QuirksPaintTable in Quirks mode, not PaintTable"); nsVoidArray rowGroups; PRUint32 numRowGroups; @@ -430,7 +372,7 @@ TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) PaintTableFrame(aTableFrame, aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(0))), aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(numRowGroups - 1))), - nsnull); + aDeflate); /*Set up column background/border data*/ if (mNumCols > 0) { @@ -475,6 +417,9 @@ TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) col = NS_STATIC_CAST(nsTableColFrame*, col->GetNextSibling())) { /*Create data struct for column*/ PRUint32 colIndex = col->GetColIndex(); + NS_ASSERTION(colIndex < mNumCols, "prevent array boundary violation"); + if (mNumCols <= colIndex) + break; mCols[colIndex].mCol.SetFull(mPresContext, mRenderingContext, col); //Bring column mRect into table's coord system mCols[colIndex].mCol.mRect.MoveBy(cgData->mRect.x, cgData->mRect.y); @@ -510,8 +455,6 @@ TableBackgroundPainter::PaintRowGroup(nsTableRowGroupFrame* aFrame, PRBool aPassThrough) { NS_PRECONDITION(aFrame, "null frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must not call PaintRowGroup in Quirks mode"); nsTableRowFrame* firstRow = aFrame->GetFirstRow(); @@ -570,8 +513,7 @@ TableBackgroundPainter::PaintRow(nsTableRowFrame* aFrame, PRBool aPassThrough) { NS_PRECONDITION(aFrame, "null frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must not call PaintRow in Quirks mode"); + /* Load row data */ if (!aPassThrough) { mRow.SetFull(mPresContext, mRenderingContext, aFrame); diff --git a/mozilla/layout/html/table/src/nsTablePainter.h b/mozilla/layout/html/table/src/nsTablePainter.h index 6bb9738914e..eb59be41d3d 100644 --- a/mozilla/layout/html/table/src/nsTablePainter.h +++ b/mozilla/layout/html/table/src/nsTablePainter.h @@ -94,15 +94,13 @@ class TableBackgroundPainter In border-collapse, the *table* paints the cells' borders, so we need to make sure the backgrounds get painted first (underneath) by doing a cell-background-only painting pass. - This happens in both Standards and Quirks mode PaintTable - calls. The table must then do a no-cell-background pass that continues as a normal background paint call in the cell - descendants.) This method doesn't handle views very well, but - then, nothing about BC table painting really does. + descendants.) This method doesn't handle views very well, + but then, nothing about BC table painting really does. */ - /* ~*~ Using Standards Mode Painting ~*~ + /* ~*~ Using nsTablePainter Background Painting ~*~ A call to PaintTable will normally paint all of the table's elements (except the cells in non-BC). Elements with views @@ -113,12 +111,13 @@ class TableBackgroundPainter /** Paint background for the table frame and its children down through cells * (Cells themselves will only be painted in border collapse) - * Standards mode only * Table must do a flagged TABLE_BG_PAINT ::Paint call on its * children afterwards * @param aTableFrame - the table frame + * @param aDeflate - deflation needed to bring table's mRect + * to the outer grid lines in border-collapse */ - nsresult PaintTable(nsTableFrame* aTableFrame); + nsresult PaintTable(nsTableFrame* aTableFrame, nsMargin* aDeflate); /** Paint background for the row group and its children down through cells * (Cells themselves will only be painted in border collapse) @@ -140,18 +139,6 @@ class TableBackgroundPainter nsresult PaintRow(nsTableRowFrame* aFrame) { return PaintRow(aFrame, PR_FALSE); } - - /** Paint table's background, Quirks mode only - * Cell backgrounds will also be painted in border collapse: - * Table must do a flagged TABLE_BG_PAINT on its children - * afterwards. - * @param aTableFrame - the table frame - * @param aDeflate - deflation needed to bring table's mRect - * to the outer grid lines in border-collapse - */ - nsresult QuirksPaintTable(nsTableFrame* aTableFrame, - nsMargin& aDeflate); - private: /** Paint table frame's background diff --git a/mozilla/layout/html/table/src/nsTableRowFrame.cpp b/mozilla/layout/html/table/src/nsTableRowFrame.cpp index df60987ecac..e9bf36f1b44 100644 --- a/mozilla/layout/html/table/src/nsTableRowFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableRowFrame.cpp @@ -545,20 +545,17 @@ NS_METHOD nsTableRowFrame::Paint(nsIPresContext* aPresContext, if (NS_FRAME_PAINT_LAYER_BACKGROUND == aWhichLayer && //direct (not table-called) background paint !(aFlags & (NS_PAINT_FLAG_TABLE_BG_PAINT | NS_PAINT_FLAG_TABLE_CELL_BG_PASS))) { - //Quirks inherits bg into cells & paints them there - if (eCompatibility_NavQuirks != aPresContext->CompatibilityMode()) { - nsTableFrame* tableFrame; - nsTableFrame::GetTableFrame(this, tableFrame); - NS_ASSERTION(tableFrame, "null table frame"); + nsTableFrame* tableFrame; + nsTableFrame::GetTableFrame(this, tableFrame); + NS_ASSERTION(tableFrame, "null table frame"); - TableBackgroundPainter painter(tableFrame, - TableBackgroundPainter::eOrigin_TableRow, - aPresContext, aRenderingContext, - aDirtyRect); - nsresult rv = painter.PaintRow(this); - if (NS_FAILED(rv)) return rv; - aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; - } + TableBackgroundPainter painter(tableFrame, + TableBackgroundPainter::eOrigin_TableRow, + aPresContext, aRenderingContext, + aDirtyRect); + nsresult rv = painter.PaintRow(this); + if (NS_FAILED(rv)) return rv; + aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; } PRUint8 overflow = GetStyleDisplay()->mOverflow; diff --git a/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp b/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp index 1e9a3e0545b..9294e02cdd3 100644 --- a/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableRowGroupFrame.cpp @@ -207,20 +207,17 @@ NS_METHOD nsTableRowGroupFrame::Paint(nsIPresContext* aPresContext, if (NS_FRAME_PAINT_LAYER_BACKGROUND == aWhichLayer && //direct (not table-called) background paint !(aFlags & (NS_PAINT_FLAG_TABLE_BG_PAINT | NS_PAINT_FLAG_TABLE_CELL_BG_PASS))) { - //Quirks inherits bg into cells & paints them there - if (eCompatibility_NavQuirks != aPresContext->CompatibilityMode()) { - nsTableFrame* tableFrame; - nsTableFrame::GetTableFrame(this, tableFrame); - NS_ASSERTION(tableFrame, "null table frame"); + nsTableFrame* tableFrame; + nsTableFrame::GetTableFrame(this, tableFrame); + NS_ASSERTION(tableFrame, "null table frame"); - TableBackgroundPainter painter(tableFrame, - TableBackgroundPainter::eOrigin_TableRowGroup, - aPresContext, aRenderingContext, - aDirtyRect); - nsresult rv = painter.PaintRowGroup(this); - if (NS_FAILED(rv)) return rv; - aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; - } + TableBackgroundPainter painter(tableFrame, + TableBackgroundPainter::eOrigin_TableRowGroup, + aPresContext, aRenderingContext, + aDirtyRect); + nsresult rv = painter.PaintRowGroup(this); + if (NS_FAILED(rv)) return rv; + aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; } PRUint8 overflow = GetStyleDisplay()->mOverflow; diff --git a/mozilla/layout/style/quirk.css b/mozilla/layout/style/quirk.css index fa25638059a..653c2f93b16 100644 --- a/mozilla/layout/style/quirk.css +++ b/mozilla/layout/style/quirk.css @@ -110,10 +110,6 @@ table { font-variant: -moz-initial; } -/* make sure backgrounds are inherited in tables -- see bug 4510*/ -td, th, tr { - background: inherit; -} /* Quirk: collapse top margin of BODY and TD and bottom margin of TD */ diff --git a/mozilla/layout/tables/nsTableFrame.cpp b/mozilla/layout/tables/nsTableFrame.cpp index 97ae80e7fad..1f1a57ed62f 100644 --- a/mozilla/layout/tables/nsTableFrame.cpp +++ b/mozilla/layout/tables/nsTableFrame.cpp @@ -1420,11 +1420,11 @@ nsTableFrame::Paint(nsIPresContext* aPresContext, deflate.left = BC_BORDER_LEFT_HALF_COORD(p2t, propData->mLeftBorderWidth); } } - rv = painter.QuirksPaintTable(this, deflate); + rv = painter.PaintTable(this, &deflate); if (NS_FAILED(rv)) return rv; } else { - rv = painter.PaintTable(this); + rv = painter.PaintTable(this, nsnull); if (NS_FAILED(rv)) return rv; } diff --git a/mozilla/layout/tables/nsTablePainter.cpp b/mozilla/layout/tables/nsTablePainter.cpp index 8a838b302f9..1d004418fef 100644 --- a/mozilla/layout/tables/nsTablePainter.cpp +++ b/mozilla/layout/tables/nsTablePainter.cpp @@ -44,9 +44,9 @@ #include "nsTablePainter.h" #include "nsCSSRendering.h" -/* ~*~ Standards Mode Painting ~*~ +/* ~*~ Table Background Painting ~*~ - Background painting in Standards mode follows CSS2.1:17.5.1 + Mozilla's Table Background painting follows CSS2.1:17.5.1 That section does not, however, describe the effect of borders on background image positioning. What we do is: @@ -95,12 +95,6 @@ flexibility in aligning /to/ those border widths. */ -/* ~*~ Quirks Table Background Painting ~*~ - - Quirks inherits all backgrounds below the table level into the - cells; we don't paint intermediate backgrounds. -*/ - /* ~*~ TableBackgroundPainter ~*~ @@ -360,62 +354,10 @@ TableBackgroundPainter::TranslateContext(nscoord aDX, } nsresult -TableBackgroundPainter::QuirksPaintTable(nsTableFrame* aTableFrame, - nsMargin& aDeflate) +TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame, + nsMargin* aDeflate) { NS_PRECONDITION(aTableFrame, "null table frame"); - NS_PRECONDITION(eCompatibility_NavQuirks == mCompatMode, - "QuirksPaintTable called for non-Quirks"); - - nsVoidArray rowGroups; - PRUint32 numRowGroups; - aTableFrame->OrderRowGroups(rowGroups, numRowGroups); - - if (numRowGroups < 1) { //degenerate case - PaintTableFrame(aTableFrame,nsnull, nsnull, &aDeflate); - /* No cells; nothing else to paint */ - return NS_OK; - } - - PaintTableFrame(aTableFrame, - aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(0))), - aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(numRowGroups - 1))), - &aDeflate); - - if (mIsBorderCollapse) { - /* This is a simple pass, so we'll just keep with the table coord system. */ - - for (PRUint32 i = 0; i < numRowGroups; i++) { - nsTableRowGroupFrame* rg = aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(i))); - nsRect rgRect = rg->GetRect(); - if (rgRect.Intersects(mDirtyRect) && !rg->HasView()) { - for (nsTableRowFrame* row = rg->GetFirstRow(); row; row = row->GetNextRow()) { - nsRect rowRect = row->GetRect(); - rowRect.MoveBy(rgRect.x, rgRect.y); - if (mDirtyRect.YMost() > rowRect.y && //Intersect won't handle rowspans - !row->HasView()) { - for (nsTableCellFrame* cell = row->GetFirstCell(); cell; cell = cell->GetNextCell()) { - mCellRect = cell->GetRect(); - mCellRect.MoveBy(rowRect.x, rowRect.y); - if (mCellRect.Intersects(mDirtyRect) && !cell->HasView()) { - nsresult rv = PaintCell(cell, PR_FALSE); - if (NS_FAILED(rv)) return rv; - } - } - } - } - } - } - } - return NS_OK; -} - -nsresult -TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) -{ - NS_PRECONDITION(aTableFrame, "null table frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must call QuirksPaintTable in Quirks mode, not PaintTable"); nsVoidArray rowGroups; PRUint32 numRowGroups; @@ -430,7 +372,7 @@ TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) PaintTableFrame(aTableFrame, aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(0))), aTableFrame->GetRowGroupFrame(NS_STATIC_CAST(nsIFrame*, rowGroups.ElementAt(numRowGroups - 1))), - nsnull); + aDeflate); /*Set up column background/border data*/ if (mNumCols > 0) { @@ -475,6 +417,9 @@ TableBackgroundPainter::PaintTable(nsTableFrame* aTableFrame) col = NS_STATIC_CAST(nsTableColFrame*, col->GetNextSibling())) { /*Create data struct for column*/ PRUint32 colIndex = col->GetColIndex(); + NS_ASSERTION(colIndex < mNumCols, "prevent array boundary violation"); + if (mNumCols <= colIndex) + break; mCols[colIndex].mCol.SetFull(mPresContext, mRenderingContext, col); //Bring column mRect into table's coord system mCols[colIndex].mCol.mRect.MoveBy(cgData->mRect.x, cgData->mRect.y); @@ -510,8 +455,6 @@ TableBackgroundPainter::PaintRowGroup(nsTableRowGroupFrame* aFrame, PRBool aPassThrough) { NS_PRECONDITION(aFrame, "null frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must not call PaintRowGroup in Quirks mode"); nsTableRowFrame* firstRow = aFrame->GetFirstRow(); @@ -570,8 +513,7 @@ TableBackgroundPainter::PaintRow(nsTableRowFrame* aFrame, PRBool aPassThrough) { NS_PRECONDITION(aFrame, "null frame"); - NS_PRECONDITION(eCompatibility_NavQuirks != mCompatMode, - "must not call PaintRow in Quirks mode"); + /* Load row data */ if (!aPassThrough) { mRow.SetFull(mPresContext, mRenderingContext, aFrame); diff --git a/mozilla/layout/tables/nsTablePainter.h b/mozilla/layout/tables/nsTablePainter.h index 6bb9738914e..eb59be41d3d 100644 --- a/mozilla/layout/tables/nsTablePainter.h +++ b/mozilla/layout/tables/nsTablePainter.h @@ -94,15 +94,13 @@ class TableBackgroundPainter In border-collapse, the *table* paints the cells' borders, so we need to make sure the backgrounds get painted first (underneath) by doing a cell-background-only painting pass. - This happens in both Standards and Quirks mode PaintTable - calls. The table must then do a no-cell-background pass that continues as a normal background paint call in the cell - descendants.) This method doesn't handle views very well, but - then, nothing about BC table painting really does. + descendants.) This method doesn't handle views very well, + but then, nothing about BC table painting really does. */ - /* ~*~ Using Standards Mode Painting ~*~ + /* ~*~ Using nsTablePainter Background Painting ~*~ A call to PaintTable will normally paint all of the table's elements (except the cells in non-BC). Elements with views @@ -113,12 +111,13 @@ class TableBackgroundPainter /** Paint background for the table frame and its children down through cells * (Cells themselves will only be painted in border collapse) - * Standards mode only * Table must do a flagged TABLE_BG_PAINT ::Paint call on its * children afterwards * @param aTableFrame - the table frame + * @param aDeflate - deflation needed to bring table's mRect + * to the outer grid lines in border-collapse */ - nsresult PaintTable(nsTableFrame* aTableFrame); + nsresult PaintTable(nsTableFrame* aTableFrame, nsMargin* aDeflate); /** Paint background for the row group and its children down through cells * (Cells themselves will only be painted in border collapse) @@ -140,18 +139,6 @@ class TableBackgroundPainter nsresult PaintRow(nsTableRowFrame* aFrame) { return PaintRow(aFrame, PR_FALSE); } - - /** Paint table's background, Quirks mode only - * Cell backgrounds will also be painted in border collapse: - * Table must do a flagged TABLE_BG_PAINT on its children - * afterwards. - * @param aTableFrame - the table frame - * @param aDeflate - deflation needed to bring table's mRect - * to the outer grid lines in border-collapse - */ - nsresult QuirksPaintTable(nsTableFrame* aTableFrame, - nsMargin& aDeflate); - private: /** Paint table frame's background diff --git a/mozilla/layout/tables/nsTableRowFrame.cpp b/mozilla/layout/tables/nsTableRowFrame.cpp index df60987ecac..e9bf36f1b44 100644 --- a/mozilla/layout/tables/nsTableRowFrame.cpp +++ b/mozilla/layout/tables/nsTableRowFrame.cpp @@ -545,20 +545,17 @@ NS_METHOD nsTableRowFrame::Paint(nsIPresContext* aPresContext, if (NS_FRAME_PAINT_LAYER_BACKGROUND == aWhichLayer && //direct (not table-called) background paint !(aFlags & (NS_PAINT_FLAG_TABLE_BG_PAINT | NS_PAINT_FLAG_TABLE_CELL_BG_PASS))) { - //Quirks inherits bg into cells & paints them there - if (eCompatibility_NavQuirks != aPresContext->CompatibilityMode()) { - nsTableFrame* tableFrame; - nsTableFrame::GetTableFrame(this, tableFrame); - NS_ASSERTION(tableFrame, "null table frame"); + nsTableFrame* tableFrame; + nsTableFrame::GetTableFrame(this, tableFrame); + NS_ASSERTION(tableFrame, "null table frame"); - TableBackgroundPainter painter(tableFrame, - TableBackgroundPainter::eOrigin_TableRow, - aPresContext, aRenderingContext, - aDirtyRect); - nsresult rv = painter.PaintRow(this); - if (NS_FAILED(rv)) return rv; - aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; - } + TableBackgroundPainter painter(tableFrame, + TableBackgroundPainter::eOrigin_TableRow, + aPresContext, aRenderingContext, + aDirtyRect); + nsresult rv = painter.PaintRow(this); + if (NS_FAILED(rv)) return rv; + aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; } PRUint8 overflow = GetStyleDisplay()->mOverflow; diff --git a/mozilla/layout/tables/nsTableRowGroupFrame.cpp b/mozilla/layout/tables/nsTableRowGroupFrame.cpp index 1e9a3e0545b..9294e02cdd3 100644 --- a/mozilla/layout/tables/nsTableRowGroupFrame.cpp +++ b/mozilla/layout/tables/nsTableRowGroupFrame.cpp @@ -207,20 +207,17 @@ NS_METHOD nsTableRowGroupFrame::Paint(nsIPresContext* aPresContext, if (NS_FRAME_PAINT_LAYER_BACKGROUND == aWhichLayer && //direct (not table-called) background paint !(aFlags & (NS_PAINT_FLAG_TABLE_BG_PAINT | NS_PAINT_FLAG_TABLE_CELL_BG_PASS))) { - //Quirks inherits bg into cells & paints them there - if (eCompatibility_NavQuirks != aPresContext->CompatibilityMode()) { - nsTableFrame* tableFrame; - nsTableFrame::GetTableFrame(this, tableFrame); - NS_ASSERTION(tableFrame, "null table frame"); + nsTableFrame* tableFrame; + nsTableFrame::GetTableFrame(this, tableFrame); + NS_ASSERTION(tableFrame, "null table frame"); - TableBackgroundPainter painter(tableFrame, - TableBackgroundPainter::eOrigin_TableRowGroup, - aPresContext, aRenderingContext, - aDirtyRect); - nsresult rv = painter.PaintRowGroup(this); - if (NS_FAILED(rv)) return rv; - aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; - } + TableBackgroundPainter painter(tableFrame, + TableBackgroundPainter::eOrigin_TableRowGroup, + aPresContext, aRenderingContext, + aDirtyRect); + nsresult rv = painter.PaintRowGroup(this); + if (NS_FAILED(rv)) return rv; + aFlags |= NS_PAINT_FLAG_TABLE_BG_PAINT; } PRUint8 overflow = GetStyleDisplay()->mOverflow;