Closed Bug 201066 Opened 21 years ago Closed 21 years ago

NS_FRAME_OUTSIDE_CHILDREN set inconsistently for table cell frames

Categories

(Core :: Layout: Tables, defect, P2)

x86
Windows XP
defect

Tracking

()

RESOLVED DUPLICATE of bug 173277
Future

People

(Reporter: john, Unassigned)

References

Details

One of the major false positives in the layout regression tests is for table
cell frames.  Specifically, they sometimes end up with their
NS_FRAME_OUTSIDE_CHILDREN bit set and sometimes do not.  Testcase info and false
positive printouts follow.
http://lxr.mozilla.org/seamonkey/source/layout/html/tests/block/bugs/40129.html

frame state mismatch: 0xc00004 vs. 0xc0000c
Node 1:
  Block(td)(0) 0xc00004 0,0,1065,960
Node 2:
  Block(td)(0) 0xc0000c 0,0,1065,960

frame state mismatch: 0xd00104 vs. 0xd0010c
Node 1:
  Area(div)(1) 0xd00104 0,0,960,960
Node 2:
  Area(div)(1) 0xd0010c 0,0,960,960

(The second one was right after the first in the same file.  Ditto with the last
two errors in this file.)

http://lxr.mozilla.org/seamonkey/source/layout/html/tests/table/viewer_tests/test4.html

frame state mismatch: 0x84 vs. 0x4
Node 1:
  TableCell(th)(3) 0x84 975,0,5580,360, |null attr|-16777216|left: Null top:
Null right: Null bottom: Null  left: 15[0xf]tw top: 15[0xf]tw right: 15[0xf]tw
bottom: 15[0xf]tw  left: 15[0xf]tw top: 15[0xf]tw right: 15[0xf]tw bottom:
15[0xf]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null
right: Null bottom: Null  1[0x1]enum 0|100 100 |left: Auto top: Auto right: Auto
bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |3 0 0 Normal
 Normal  0[0x0]tw  Normal  |0 16 0 0 0 0 0 0 0 0 0 0 |0 0 0 -1 1 |0 0 0 Null  
Node 2:
  TableCell(th)(3) 0x4 975,0,5580,360, |null attr|-16777216|left: Null top: Null
right: Null bottom: Null  left: 15[0xf]tw top: 15[0xf]tw right: 15[0xf]tw
bottom: 15[0xf]tw  left: 15[0xf]tw top: 15[0xf]tw right: 15[0xf]tw bottom:
15[0xf]tw  left: Null top: Null right: Null bottom: Null  left: Null top: Null
right: Null bottom: Null  1[0x1]enum 0|100 100 |left: Auto top: Auto right: Auto
bottom: Auto  Auto  0[0x0]tw  Null  Auto  0[0x0]tw  Null  0 Auto  |3 0 0 Normal
 Normal  0[0x0]tw  Normal  |0 16 0 0 0 0 0 0 0 0 0 0 |0 0 0 -1 1 |0 0 0 Null  

http://lxr.mozilla.org/seamonkey/source/layout/html/tests/table/bugs/bug10633.html

frame state mismatch: 0x4 vs. 0x84
Node 1:
  TableCell(td)(11) 0x4 3915,0,2805,330
Node 2:
  TableCell(td)(11) 0x84 3915,0,2805,330

http://lxr.mozilla.org/seamonkey/source/layout/html/tests/table/bugs/bug12910-2.html
frame state mismatch: 0xc0000c vs. 0xc00004
Node 1:
  Block(td)(5) 0xc0000c 0,45,1575,210
Node 2:
  Block(td)(5) 0xc00004 0,45,1575,210

The last one got this many times:
WARNING: Not Yet Implemented, file
c:/cvs/mozilla/webshell/tests/viewer/nsBrowserWindow.cpp, line 425

And a few of these:
###!!! ASSERTION: unexpected containing block height: 'NS_AUTOHEIGHT !=
aContainingBlockHeight', file
c:/cvs/mozilla/layout/html/base/src/nsHTMLReflowState.cpp, line 2449

And this:
###!!! ASSERTION: Registering a placeholder for a frame that already has a
placeholder!: '!entry->placeholderFrame', file
c:/cvs/mozilla/layout/html/base/src/nsFrameManager.cpp, line 794

http://lxr.mozilla.org/seamonkey/source/layout/html/tests/table/bugs/bug45055-2.html

frame state mismatch: 0xc00004 vs. 0xc0000c
Node 1:
  Block(td)(0) 0xc00004 0,0,1065,960
Node 2:
  Block(td)(0) 0xc0000c 0,0,1065,960

frame state mismatch: 0xd00104 vs. 0xd0010c
Node 1:
  Area(div)(1) 0xd00104 0,0,960,960
Node 2:
  Area(div)(1) 0xd0010c 0,0,960,960
NS_FRAME_OUTSIDE_CHILDREN:
layout/html/tests/block/bugs/40129.html Block(td) -> Area(div)
layout/html/tests/table/bugs/bug12910-2.html Block(td)
layout/html/tests/table/bugs/bug4849.html Block(td)

Oops, most of those were for 0x80, NS_FRAME_HAS_LOADED_IMAGE, which is another
frequent source of false positives (and *always* with table cells).

So it sounds like it's block-plus-table related.

NS_FRAME_HAS_LOADED_IMAGE:
layout/html/tests/table/viewer_tests/test4.html TableCell(th)
layout/html/tests/table/bugs/bug10633.html TableCell(td)
layout/html/tests/table/bugs/bug12008.html TableCell(td)
layout/html/tests/table/bugs/bug1271.html TableCell(td)
layout/html/tests/table/bugs/bug1296.html TableCell(td)
layout/html/tests/table/bugs/bug1430.html TableCell(td)
layout/html/tests/table/bugs/bug45055-2.html TableCell(td)

Fixing the false positives in the regression tests should make it possible to
automate them much more easily.
Assignee: bernd.mielke → table
I think there's another bug on tables not propagating mOverflowArea in the
reflow state correctly and setting NS_FRAME_OUTSIDE_CHILDREN based only on
rowspans.  There are (or should be) a bunch of painting bugs dup'd to it.
Depends on: 197581
Priority: -- → P2
Target Milestone: --- → Future

*** This bug has been marked as a duplicate of 173277 ***
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.