From 8a76bba2f46258da19c229213a89b99c3e2895ee Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Tue, 31 Mar 2009 13:07:29 -0400 Subject: [PATCH] Bug 486052. Make our FCData bits match GetAbsoluteContainingBlock again. r+sr=roc --- layout/base/nsCSSFrameConstructor.cpp | 8 +++++++- layout/reftests/bugs/486052-1-ref.html | 12 ++++++++++++ layout/reftests/bugs/486052-1.html | 23 +++++++++++++++++++++++ layout/reftests/bugs/486052-2-ref.html | 6 ++++++ layout/reftests/bugs/486052-2a.html | 17 +++++++++++++++++ layout/reftests/bugs/486052-2b.html | 17 +++++++++++++++++ layout/reftests/bugs/486052-2c.html | 17 +++++++++++++++++ layout/reftests/bugs/486052-2d.html | 6 ++++++ layout/reftests/bugs/486052-2e.html | 17 +++++++++++++++++ layout/reftests/bugs/486052-2f.html | 17 +++++++++++++++++ layout/reftests/bugs/486052-2g.html | 17 +++++++++++++++++ layout/reftests/bugs/reftest.list | 8 ++++++++ 12 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 layout/reftests/bugs/486052-1-ref.html create mode 100644 layout/reftests/bugs/486052-1.html create mode 100644 layout/reftests/bugs/486052-2-ref.html create mode 100644 layout/reftests/bugs/486052-2a.html create mode 100644 layout/reftests/bugs/486052-2b.html create mode 100644 layout/reftests/bugs/486052-2c.html create mode 100644 layout/reftests/bugs/486052-2d.html create mode 100644 layout/reftests/bugs/486052-2e.html create mode 100644 layout/reftests/bugs/486052-2f.html create mode 100644 layout/reftests/bugs/486052-2g.html 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 @@ + + + +
Test
+ + 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 @@ + + + +
Test
+ + 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