Closed Bug 308019 Opened 19 years ago Closed 19 years ago

###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp, line 4301

Categories

(Core :: Layout: Tables, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9alpha1

People

(Reporter: MatsPalmgren_bugz, Assigned: bernd_mozilla)

References

()

Details

(Keywords: assertion, qawanted, testcase)

Attachments

(4 files)

###!!! ASSERTION: Computed overflow area must contain frame bounds:
'aNewSize.width == 0 || aNewSize.height == 0 ||
aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp,
line 4301


STEPS TO REPRODUCE
1. Load URL
Attached file stack + data + frames
Martijn, do you think you can testcase this?
Keywords: qawanted
Attached file testcase
Component: Layout → Layout: Tables
Keywords: testcase
QA Contact: layout → layout.tables
Assignee: nobody → bzbarsky
Status: NEW → ASSIGNED
Attachment #209312 - Flags: superreview?(roc)
Attachment #209312 - Flags: review?(bernd_mozilla)
OS: Linux → All
Priority: -- → P2
Hardware: PC → All
Summary: ###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp, line 4301 → [FIX]###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp, line 4301
Target Milestone: --- → mozilla1.9alpha
>I think this is the right fix...
as in this is not wallpaper?

I have no problem to r+ this but I am not convinced that we are not only wallpapering about some issues here. At least the reflow log looks suspicious to me

 tblO 037434BC r=0 a=13995,UC c=0,UC cnt=162
  tbl 03743624 r=0 a=13995,UC c=UC,UC cnt=163
   rowG 0373F064 r=0 a=UC,UC c=UC,UC cnt=164
    row 0374396C r=0 a=UC,UC c=UC,UC cnt=165
     cell 03743BF4 r=0 a=UC,UC c=UC,UC cnt=166
      block 03743C54 r=0 a=UC,UC c=UC,UC cnt=167
       text 03743DFC r=0 a=UC,UC c=UC,UC cnt=168
       text 03743DFC d=0,0 me=0
       tblO 03743F08 r=0 a=UC,UC c=UC,UC cnt=169
        tbl 03750120 r=0 a=UC,UC c=UC,UC cnt=170
        tbl 03750120 d=88,60 me=88  <<< pixel alignment, how do we get this
       tblO 03743F08 d=88,60 me=88
       text 03750B4C r=0 a=UC,UC c=UC,UC cnt=171
       text 03750B4C d=0,0 me=0
      block 03743C54 d=88,60 me=88 
     cell 03743BF4 d=120,90 me=120
    row 0374396C d=UC,90
   rowG 0373F064 d=UC,90
   colG 03743A38 r=0 a=UC,UC c=UC,UC cnt=172
    col 03750CBC r=0 a=0,0 c=0,UC cnt=173
    col 03750CBC d=0,0
   colG 03743A38 d=0,0
   rowG 0373F064 r=2 a=120,UC c=120,UC cnt=174
    row 0374396C r=2 a=120,UC c=120,UC cnt=175
     cell 03743BF4 r=2 a=120,UC c=90,UC cnt=176
      block 03743C54 r=2 a=90,UC c=90,UC cnt=177
       text 03743DFC r=2 a=90,UC c=UC,UC cnt=178
       text 03743DFC d=0,0 me=0
       tblO 03743F08 r=2 a=90,UC c=0,UC cnt=179
        tbl 03750120 r=2 a=90,UC c=90,UC cnt=180
         rowG 0374380C r=2 a=30,UC c=30,UC cnt=181
          row 03750368 r=0 a=30,UC c=30,UC cnt=182
           cell 037505D8 r=0 a=0,UC c=0,UC cnt=183
            block 03750638 r=0 a=-30,UC c=0,UC cnt=184
> as in this is not wallpaper?

That's what I was thinking.  But I'm not sure.  ;)

The real issue is just an avail size that's too small for our paddings and border, right?  That can Just Happen....
Bernd, see comment 6?
Boris: this is more a review delay warning, I would like to first make sure that I understand what is the bug behind this, before I sign it.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Oh, that's ok.  This is not exactly blocking anything else I'm working on.  ;)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
The problem occures in autowidth cells/cols in fixed layout. The min width should be 0 + border padding and not 0.

The problem before that I see is more should this code really invoke fixed layout?
The content width  of the outer table becomes dependent of the pct inner table. If I read the CSS 2.1 such a pct spec is illegal. Shouldn't we treat the inner table then as auto?
Hmm... yeah, in this case the inner table should indeed be auto.
What patch do we want here? Both?
I suspect we just want bernd's patch, but check with him?  I really don't know this code very well.  :(
>I really don't know this code very well.  :(

I like understatement...

If we take Boris patch we will plug the hole completely, we will not trigger the assert over this path. However even trying to pass a negative width usually indicates that something in the layout strategy went wrong. So it would make sense to assert if we clip. But this would otherwise assert anyway with the overflow assert. We hit the assert seldom. I think I can  handle the load from the overflow assert without clipping.

My patch needs to be rtested. Thats why I did not ask for approval
Comment on attachment 209312 [details] [diff] [review]
I think this is the right fix...

So assuming bernd's patch passes the rtests we should take that one.
Attachment #209312 - Flags: superreview?(roc)
Attachment #209312 - Flags: review?(bernd_mozilla)
Comment on attachment 209486 [details] [diff] [review]
this fixes the problem where it starts

I just rtested it.
Attachment #209486 - Flags: superreview?(bzbarsky)
Attachment #209486 - Flags: review?(bzbarsky)
Assignee: bzbarsky → bernd_mozilla
Status: REOPENED → NEW
Attachment #209486 - Flags: superreview?(bzbarsky)
Attachment #209486 - Flags: superreview+
Attachment #209486 - Flags: review?(bzbarsky)
Attachment #209486 - Flags: review+
Priority: P2 → --
Summary: [FIX]###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp, line 4301 → ###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file nsFrame.cpp, line 4301
Target Milestone: mozilla1.9alpha → ---
Status: NEW → RESOLVED
Closed: 19 years ago19 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9alpha
fix checked in
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: