Index: Source/core/css/resolver/StyleAdjuster.cpp |
diff --git a/Source/core/css/resolver/StyleAdjuster.cpp b/Source/core/css/resolver/StyleAdjuster.cpp |
index 215d499af052796dcfadab339bcc6cb48c84e9c4..7e5e771659a892b3409f328374f2a316cce052fc 100644 |
--- a/Source/core/css/resolver/StyleAdjuster.cpp |
+++ b/Source/core/css/resolver/StyleAdjuster.cpp |
@@ -260,14 +260,20 @@ void StyleAdjuster::adjustRenderStyle(RenderStyle* style, RenderStyle* parentSty |
if (style->display() == INLINE && style->styleType() == NOPSEUDO && style->writingMode() != parentStyle->writingMode()) |
style->setDisplay(INLINE_BLOCK); |
- // After performing the display mutation, check table rows. We do not honor position:relative or position:sticky on |
- // table rows or cells. This has been established for position:relative in CSS2.1 (and caused a crash in containingBlock() |
+ // After performing the display mutation, check table rows. We do not honor position: relative table rows or cells. |
+ // This has been established for position: relative in CSS2.1 (and caused a crash in containingBlock() |
// on some sites). |
if ((style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_ROW_GROUP |
|| style->display() == TABLE_FOOTER_GROUP || style->display() == TABLE_ROW) |
&& style->position() == RelativePosition) |
style->setPosition(StaticPosition); |
+ // Cannot support position: sticky for table columns and column groups because current code is only doing |
+ // background painting through columns / column groups |
+ if ((style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_COLUMN) |
+ && style->position() == StickyPosition) |
+ style->setPosition(StaticPosition); |
+ |
// writing-mode does not apply to table row groups, table column groups, table rows, and table columns. |
// FIXME: Table cells should be allowed to be perpendicular or flipped with respect to the table, though. |
if (style->display() == TABLE_COLUMN || style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_FOOTER_GROUP |