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..dc3fb601bf7d5d5a2689b080f5cb53713db16a92 100644 |
--- a/Source/core/css/resolver/StyleAdjuster.cpp |
+++ b/Source/core/css/resolver/StyleAdjuster.cpp |
@@ -260,12 +260,16 @@ 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:relativetable 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 |
+ if (((style->display() == TABLE_HEADER_GROUP || style->display() == TABLE_ROW_GROUP |
|| style->display() == TABLE_FOOTER_GROUP || style->display() == TABLE_ROW) |
&& style->position() == RelativePosition) |
+ // Do not allow position:sticky for table columns and column groups because table columns |
+ // don't have RenderLayer |
+ || ((style->display() == TABLE_COLUMN_GROUP || style->display() == TABLE_COLUMN) |
+ && style->position() == StickyPosition)) |
Julien - ping for review
2014/03/12 18:41:38
I would rather have that as a separate branch belo
ostap
2014/03/12 20:12:57
Done.
|
style->setPosition(StaticPosition); |
// writing-mode does not apply to table row groups, table column groups, table rows, and table columns. |