Closed Bug 326529 Opened 19 years ago Closed 18 years ago

Crash when setting ordinal and hidden property on tooltip

Categories

(Core :: Layout, defect)

x86
All
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: martijn.martijn, Assigned: MatsPalmgren_bugz)

References

(Depends on 1 open bug)

Details

(4 keywords)

Attachments

(5 files, 1 obsolete file)

See upcoming testcase, it crashes on load. It also crashes Mozilla1.7.12.

Talkback ID TB14947889K

I guess this depends on bug 324721.
This is a backtrace for an old (and mutilated) debug build, it might be useful, still:
First, I get an assertion:
###!!! ASSERTION: aChild not in frame list?: 'foundPrevSib', file c:/mozilla/moz
illa/layout/xul/base/src/nsBoxFrame.cpp, line 2362
Break: at file c:/mozilla/mozilla/layout/xul/base/src/nsBoxFrame.cpp, line 2362

And then then the crash:
Program received signal SIGSEGV, Segmentation fault.
0x056cb242 in nsIFrame::GetNextSibling() const (this=0xdddddddd)
    at c:/mozilla/mozilla/layout/generic/nsIFrame.h:681
warning: Source file is more recent than executable.

681                                   const nsRect&           aDirtyRect,
Current language:  auto; currently c++
(gdb) bt
#0  0x056cb242 in nsIFrame::GetNextSibling() const (this=0xdddddddd)
    at c:/mozilla/mozilla/layout/generic/nsIFrame.h:681
#1  0x050201ac in nsFrameList::GetPrevSiblingFor(nsIFrame*) const (
    this=0xe6277d4, aFrame=0xe627e9c)
    at c:/mozilla/mozilla/layout/generic/nsFrameList.cpp:516
#2  0x0501f5ce in nsFrameList::RemoveFrame(nsIFrame*, nsIFrame*) (
    this=0xe6277d4, aFrame=0xe627e9c, aPrevSiblingHint=0x0)
    at c:/mozilla/mozilla/layout/generic/nsFrameList.cpp:203
From the Talkback ID:
0x00000000
nsSprocketLayout::GetAscent  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsSprocketLayout.cpp, line 1564]
nsBoxFrame::GetAscent  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsBoxFrame.cpp, line 946]
nsSprocketLayout::Layout  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsSprocketLayout.cpp, line 260]
nsBoxFrame::DoLayout  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsBoxFrame.cpp, line 1065]
nsBoxFrame::DoLayout  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsBoxFrame.cpp, line 1065]
nsRootBoxFrame::Reflow  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/xul/base/src/nsRootBoxFrame.cpp, line 217]
nsContainerFrame::ReflowChild  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/generic/nsContainerFrame.cpp, line 742]
ViewportFrame::Reflow  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/generic/nsViewportFrame.cpp, line 243]
IncrementalReflow::Dispatch  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/base/nsPresShell.cpp, line 861]
PresShell::ProcessReflowCommands  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/base/nsPresShell.cpp, line 6522]
PresShell::WillPaint  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/layout/base/nsPresShell.cpp, line 6198]
HandleEvent  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/view/src/nsView.cpp, line 176]
nsWindow::DispatchEvent  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/widget/src/windows/nsWindow.cpp, line 1169]
nsWindow::ProcessMessage  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/widget/src/windows/nsWindow.cpp, line 4294]
nsWindow::WindowProc  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/widget/src/windows/nsWindow.cpp, line 1358]
USER32.dll + 0x27b17 (0x77d37b17)
USER32.dll + 0x2cdce (0x77d3cdce)
USER32.dll + 0x459d (0x77d1459d)
USER32.dll + 0x47b4 (0x77d147b4)
ntdll.dll + 0x2589f (0x77f6589f)
USER32.dll + 0x9611 (0x77d19611)
nsAppStartup::Run  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/toolkit/components/startup/src/nsAppStartup.cpp, line 162]
main  [c:/builds/tinderbox/Fx-Trunk/WINNT_5.2_Depend/mozilla/browser/app/nsBrowserApp.cpp, line 61]
kernel32.dll + 0x1eb69 (0x77e5eb69)
Assignee: nobody → mats.palmgren
OS: Windows XP → All
The problem is that the tooltip is out-of-flow and lives on the 
PopupFrameList of the PopupSet although its parent is the
DocElementBox. It does not exist on the normal flow child list
of the DocElementBox and if a frame can't be found by
RelayoutChildAtOrdinal() it's inserted as the first child.

The problem is that now both the DocElementBox and the PopupSet
thinks they own it and if either destroys the frame the other
will still refer to the destroyed frame...
Attached patch Patch rev. 1 (obsolete) — Splinter Review
Move the placeholder instead.
Attachment #211697 - Flags: superreview?(bzbarsky)
Attachment #211697 - Flags: review?(bzbarsky)
Attachment #211697 - Flags: superreview?(bzbarsky)
Attachment #211697 - Flags: superreview+
Attachment #211697 - Flags: review?(bzbarsky)
Attachment #211697 - Flags: review+
Mats, the patch never got checked in, right? (I still crash with the testcase)
Are you planning on getting it checked in or did you forget?
Attached patch Merged to tipSplinter Review
Attachment #211697 - Attachment is obsolete: true
Fixed on trunk.  This is something we should consider for the branches, probably.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Attachment #216994 - Flags: approval-branch-1.8.1?(roc)
Attachment #211697 - Flags: approval1.8.0.3?
Verified FIXED: no crash with trunk SeaMonkey 1.5a;Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060403 SeaMonkey/1.5a
Status: RESOLVED → VERIFIED
Attachment #216994 - Flags: approval-branch-1.8.1?(roc) → approval-branch-1.8.1+
Flags: blocking1.8.1+
Flags: blocking1.8.0.3?
Fixed on the 1.8 branch.
Keywords: fixed1.8.1
Flags: blocking1.8.0.3? → blocking1.8.0.3+
Comment on attachment 216994 [details] [diff] [review]
Merged to tip

approved for 1.8.0 branch, a=dveditz for drivers (we assume 1.8.0 needs this merged patch, if not we approve the older one).
Attachment #216994 - Flags: approval1.8.0.3+
Attachment #211697 - Flags: approval1.8.0.3?
Fixed on 1.8.0 branch.
Keywords: fixed1.8.0.3
Also verified using test case provided on these builds: 

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4

Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: