Bug 1409114 - Part 5: Skip box-shadow for table column and column groups. r=dbaron

This is a behaviour change, but I believe it matches the quoted spec text, and neither blink nor WebKit render these.

Differential Revision: https://phabricator.services.mozilla.com/D29276

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Matt Woodrow 2019-05-20 23:15:19 +00:00
Родитель d45480f672
Коммит 1d7c011e9b
2 изменённых файлов: 10 добавлений и 16 удалений

Просмотреть файл

@ -114,7 +114,11 @@ void nsTableColFrame::Reflow(nsPresContext* aPresContext,
void nsTableColFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsDisplayListSet& aLists) {
DisplayOutsetBoxShadow(aBuilder, aLists.BorderBackground());
// Per https://drafts.csswg.org/css-tables-3/#global-style-overrides:
// "All css properties of table-column and table-column-group boxes are
// ignored, except when explicitly specified by this specification."
// CSS outlines and box-shadows fall into this category, so we skip them
// on these boxes.
// Compute background rect by iterating all cell frame.
AutoTArray<uint32_t, 1> colIdx;
@ -134,13 +138,6 @@ void nsTableColFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
offset);
}
DisplayInsetBoxShadow(aBuilder, aLists.BorderBackground());
// Per https://drafts.csswg.org/css-tables-3/#global-style-overrides:
// "All css properties of table-column and table-column-group boxes are
// ignored, except when explicitly specified by this specification."
// CSS outlines fall into this category, so we skip them on these boxes.
for (nsIFrame* kid : PrincipalChildList()) {
BuildDisplayListForChild(aBuilder, kid, aLists);
}

Просмотреть файл

@ -352,7 +352,11 @@ void nsTableColGroupFrame::Reflow(nsPresContext* aPresContext,
void nsTableColGroupFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsDisplayListSet& aLists) {
DisplayOutsetBoxShadow(aBuilder, aLists.BorderBackground());
// Per https://drafts.csswg.org/css-tables-3/#global-style-overrides:
// "All css properties of table-column and table-column-group boxes are
// ignored, except when explicitly specified by this specification."
// CSS outlines and box-shadows fall into this category, so we skip them
// on these boxes.
// Collecting column index.
AutoTArray<uint32_t, 1> colIdx;
@ -378,13 +382,6 @@ void nsTableColGroupFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
}
}
DisplayInsetBoxShadow(aBuilder, aLists.BorderBackground());
// Per https://drafts.csswg.org/css-tables-3/#global-style-overrides:
// "All css properties of table-column and table-column-group boxes are
// ignored, except when explicitly specified by this specification."
// CSS outlines fall into this category, so we skip them on these boxes.
for (nsIFrame* kid : PrincipalChildList()) {
BuildDisplayListForChild(aBuilder, kid, aLists);
}