diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp
index f96df2d56c2a..87f14d6dbf5d 100644
--- a/layout/base/nsCSSFrameConstructor.cpp
+++ b/layout/base/nsCSSFrameConstructor.cpp
@@ -4560,26 +4560,30 @@ nsCSSFrameConstructor::FindDisplayData(const nsStyleDisplay* aDisplay,
{ NS_STYLE_DISPLAY_TABLE_CAPTION,
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_ALLOW_BLOCK_STYLES | FCDATA_DISALLOW_OUT_OF_FLOW |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableCaptionFrame) },
{ NS_STYLE_DISPLAY_TABLE_ROW_GROUP,
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_MAY_NEED_SCROLLFRAME |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableRowGroupFrame) },
{ NS_STYLE_DISPLAY_TABLE_HEADER_GROUP,
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_MAY_NEED_SCROLLFRAME |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableRowGroupFrame) },
{ NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP,
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_MAY_NEED_SCROLLFRAME |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableRowGroupFrame) },
{ NS_STYLE_DISPLAY_TABLE_COLUMN_GROUP,
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
- FCDATA_DISALLOW_OUT_OF_FLOW |
+ FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableColGroupFrame) },
{ NS_STYLE_DISPLAY_TABLE_COLUMN,
@@ -9011,6 +9015,7 @@ nsCSSFrameConstructor::sPseudoParentData[eParentTypeCount] = {
{ // Row group
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_USE_CHILD_ITEMS |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableRowGroupFrame),
&nsCSSAnonBoxes::tableRowGroup
@@ -9018,6 +9023,7 @@ nsCSSFrameConstructor::sPseudoParentData[eParentTypeCount] = {
{ // Column group
FCDATA_DECL(FCDATA_IS_TABLE_PART | FCDATA_SKIP_FRAMEMAP |
FCDATA_DISALLOW_OUT_OF_FLOW | FCDATA_USE_CHILD_ITEMS |
+ FCDATA_SKIP_ABSPOS_PUSH |
FCDATA_DESIRED_PARENT_TYPE_TO_BITS(eTypeTable),
NS_NewTableColGroupFrame),
&nsCSSAnonBoxes::tableColGroup
diff --git a/layout/reftests/bugs/486052-1-ref.html b/layout/reftests/bugs/486052-1-ref.html
new file mode 100644
index 000000000000..76e8d8da8bc0
--- /dev/null
+++ b/layout/reftests/bugs/486052-1-ref.html
@@ -0,0 +1,12 @@
+
+
+
+
+ This is a test |
+ This is a test |
+ This is a test |
+ This is a test |
+ Test
+
+
+
diff --git a/layout/reftests/bugs/486052-1.html b/layout/reftests/bugs/486052-1.html
new file mode 100644
index 000000000000..78ab224c04ec
--- /dev/null
+++ b/layout/reftests/bugs/486052-1.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ This is a test |
+ This is a test |
+ This is a test |
+ This is a test |
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2-ref.html b/layout/reftests/bugs/486052-2-ref.html
new file mode 100644
index 000000000000..d3a7de5c49c3
--- /dev/null
+++ b/layout/reftests/bugs/486052-2-ref.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2a.html b/layout/reftests/bugs/486052-2a.html
new file mode 100644
index 000000000000..bef0026a28f2
--- /dev/null
+++ b/layout/reftests/bugs/486052-2a.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2b.html b/layout/reftests/bugs/486052-2b.html
new file mode 100644
index 000000000000..5b7c89bca995
--- /dev/null
+++ b/layout/reftests/bugs/486052-2b.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2c.html b/layout/reftests/bugs/486052-2c.html
new file mode 100644
index 000000000000..f4d99f3c692b
--- /dev/null
+++ b/layout/reftests/bugs/486052-2c.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2d.html b/layout/reftests/bugs/486052-2d.html
new file mode 100644
index 000000000000..71452bceda11
--- /dev/null
+++ b/layout/reftests/bugs/486052-2d.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2e.html b/layout/reftests/bugs/486052-2e.html
new file mode 100644
index 000000000000..82a8291ae057
--- /dev/null
+++ b/layout/reftests/bugs/486052-2e.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2f.html b/layout/reftests/bugs/486052-2f.html
new file mode 100644
index 000000000000..cd502ed6ad31
--- /dev/null
+++ b/layout/reftests/bugs/486052-2f.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/486052-2g.html b/layout/reftests/bugs/486052-2g.html
new file mode 100644
index 000000000000..e23f930fdfae
--- /dev/null
+++ b/layout/reftests/bugs/486052-2g.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list
index 2f0ba1f3ca95..87151802639b 100644
--- a/layout/reftests/bugs/reftest.list
+++ b/layout/reftests/bugs/reftest.list
@@ -1116,3 +1116,11 @@ fails == 461512-1.html 461512-1-ref.html # Bug 461512
== 482659-1b.html 482659-1-ref.html
== 482659-1c.html 482659-1-ref.html
== 482659-1d.html 482659-1-ref.html
+== 486052-1.html 486052-1-ref.html
+== 486052-2a.html 486052-2-ref.html
+== 486052-2b.html 486052-2-ref.html
+== 486052-2c.html 486052-2-ref.html
+== 486052-2d.html 486052-2-ref.html
+== 486052-2e.html 486052-2-ref.html
+== 486052-2f.html 486052-2-ref.html
+== 486052-2g.html 486052-2-ref.html