Closed Bug 377473 Opened 18 years ago Closed 18 years ago

One Tooltip Listener II: And in the darkness crash them [@nsXULTooltipListener::LaunchTooltip]

Categories

(Core :: XUL, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: philor, Assigned: neil)

References

Details

(Keywords: regression)

Attachments

(1 file)

My Mac trunk Thunderbird build (from a checkout around 20070413 19:00) and at least one person's Linux trunk Thunderbird (from TB31169777, TB31164461, and TB31163857) are crashing showing tooltips. I haven't seen it crash from chrome tooltips from toolbar items, but pretty much any tooltip from the folder pane or the thread pane crashes with Thread 0 Crashed: 0 org.mozilla.thunderbird 0x00689a1d nsXULTooltipListener::LaunchTooltip(nsIContent*, int, int) + 229 1 org.mozilla.thunderbird 0x00689da2 nsXULTooltipListener::ShowTooltip() + 266 2 org.mozilla.thunderbird 0x0068a0c9 nsXULTooltipListener::sTooltipCallback(nsITimer*, void*) + 23 3 libxpcom_core.dylib 0x00f48bf2 nsTimerImpl::Fire() + 128 4 libxpcom_core.dylib 0x00f48de2 nsTimerImpl::InitCommon(unsigned, unsigned) + 296 5 libxpcom_core.dylib 0x00f46898 nsThread::nsChainedEventQueue::PutEvent(nsIRunnable*) + 1062 6 libxpcom_core.dylib 0x00f11b39 NS_ProcessNextEvent_P(nsIThread*, int) + 53 7 org.mozilla.thunderbird 0x007004a5 nsBaseAppShell::DoProcessNextNativeEvent(int) + 103 8 org.mozilla.thunderbird 0x0038dd4b nsAppShell::ProcessNextNativeEvent(int) + 525 9 org.mozilla.thunderbird 0x0038df15 nsAppShell::ProcessNextNativeEvent(int) + 983 10 com.apple.Foundation 0x9280603b __NSFireDelayedPerform + 403 11 com.apple.CoreFoundation 0x9082e7e2 CFRunLoopRunSpecific + 3341 12 com.apple.CoreFoundation 0x9082dace CFRunLoopRunInMode + 61 13 com.apple.HIToolbox 0x92dde8d8 RunCurrentEventLoopInMode + 285 14 com.apple.HIToolbox 0x92dddfe2 ReceiveNextEventCommon + 385 15 com.apple.HIToolbox 0x92ddde39 BlockUntilNextEventMatchingListInMode + 81 16 com.apple.AppKit 0x93284465 _DPSNextEvent + 572 17 com.apple.AppKit 0x93284056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137 18 org.mozilla.thunderbird 0x0038dbd9 nsAppShell::ProcessNextNativeEvent(int) + 155 19 org.mozilla.thunderbird 0x00700460 nsBaseAppShell::DoProcessNextNativeEvent(int) + 34 20 org.mozilla.thunderbird 0x0070067a nsBaseAppShell::Init() + 232 21 org.mozilla.thunderbird 0x0038ddb0 nsAppShell::ProcessNextNativeEvent(int) + 626 22 libxpcom_core.dylib 0x00f46837 nsThread::nsChainedEventQueue::PutEvent(nsIRunnable*) + 965 23 libxpcom_core.dylib 0x00f11bde NS_ProcessPendingEvents_P(nsIThread*, unsigned) + 70 24 org.mozilla.thunderbird 0x0070041b nsBaseAppShell::NativeEventCallback() + 71 25 org.mozilla.thunderbird 0x0038e016 nsAppShell::ProcessGeckoEvents() + 186 26 org.mozilla.thunderbird 0x0038e107 nsAppShell::ProcessGeckoEvents() + 427 27 com.apple.Foundation 0x928419c0 __NSFireMachPort + 307 28 com.apple.CoreFoundation 0x9083e385 __CFMachPortPerform + 136 29 com.apple.CoreFoundation 0x9082e62d CFRunLoopRunSpecific + 2904 30 com.apple.CoreFoundation 0x9082dace CFRunLoopRunInMode + 61 31 com.apple.HIToolbox 0x92dde8d8 RunCurrentEventLoopInMode + 285 32 com.apple.HIToolbox 0x92dddf19 ReceiveNextEventCommon + 184 33 com.apple.HIToolbox 0x92ddde39 BlockUntilNextEventMatchingListInMode + 81 34 com.apple.AppKit 0x93284465 _DPSNextEvent + 572 35 com.apple.AppKit 0x93284056 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 137 36 com.apple.AppKit 0x9327dddb -[NSApplication run] + 512 37 org.mozilla.thunderbird 0x0038dd2d nsAppShell::ProcessNextNativeEvent(int) + 495 38 org.mozilla.thunderbird 0x003ff0ed nsAppStartup::AttemptingQuit(int) + 245 39 org.mozilla.thunderbird 0x00007693 XRE_main + 10637 40 org.mozilla.thunderbird 0x00002fa0 main + 32 41 org.mozilla.thunderbird 0x00002f26 start + 270 42 org.mozilla.thunderbird 0x00002e41 start + 41 Given the timing, bug 376802 seems awfully likely, but I'm not going to have a chance to back it out until Saturday night (Mozilla Standard Time).
Blocks: 376802
No longer blocks: 367802
Keywords: regression
The old tooltip code had a sneaky way of working out which attribute would win. On an ordinary XUL element, tooltiptext takes precedence over tooltip. However, on a tree element, titletips (for cropped text) take precedence over tooltiptext, but not over tooltip. Thus: <foo tooltiptext="foo" tooltip="foo"> - always tooltiptext <treechildren tooltip="foo"> - always tooltip <treechildren tooltiptext="foo" tooltip="foo"> - titletips or foo by default
Attached patch Proposed patchSplinter Review
This seemed the simplest way to fix the bug without affecting the funky prioritisation code as mentioned in comment #2.
Assignee: nobody → neil
Status: NEW → ASSIGNED
Attachment #261569 - Flags: superreview?(jst)
Attachment #261569 - Flags: review?(jst)
With that patch, I hover a cropped subject in Tbird's thread pane, get a tooltip (titletip? Is that documented anywhere other than comment 2?) with the full subject, move the mouse off the subject, and that tooltip goes away and I get a "Click to display message threads" tooltip as though I was hovering the thread column header. OTOH, I don't crash :)
Comment on attachment 261569 [details] [diff] [review] Proposed patch r+sr=jst Neil, for future reference, your patches would be easier to review if you'd add -p to your default cvs diff arguments (you can do that in ~/.cvsrc).
Attachment #261569 - Flags: superreview?(jst)
Attachment #261569 - Flags: superreview+
Attachment #261569 - Flags: review?(jst)
Attachment #261569 - Flags: review+
(In reply to comment #4) >With that patch, I hover a cropped subject in Tbird's thread pane, get a >tooltip (titletip? Is that documented anywhere other than comment 2?) with the >full subject, move the mouse off the subject, and that tooltip goes away and I >get a "Click to display message threads" tooltip as though I was hovering the >thread column header. Strange, I can't reproduce that. P.S. Are you the One Ringnalda? (In reply to comment #5) >(From update of attachment 261569 [details] [diff] [review]) >r+sr=jst > >Neil, for future reference, your patches would be easier to review if you'd >add -p to your default cvs diff arguments (you can do that in ~/.cvsrc). My obsolete linux box did but I don't know where my .cvsrc lives in Windows.
Blocks: 377550
Winxp sp2 TB31208767z in yesterdays nightly. After last checkin, Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a4pre) Gecko/20070415 Thunderbird/3.0a1 ID:2007041503 [cairo] No crash.
Because I cannot see if this is fixed, bacause the status is till assigned, I have some trackback id's from version 3.0a1 (20070413) TB31403203Y TB31403218W TB31403571Y TB31403582Q I havent seen this error in the latest build version 3.0a1 (20070421), so I guess this can be set to resolved :).
Marking fixed, as comment 4 might be a platform widget bug instead.
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Filed bug 378316 for comment 4, which was not just Cocoa, but already four days old and from bug 355102 instead; sorry for the misdirected aspersions.
Flags: in-testsuite?
Component: XP Toolkit/Widgets: XUL → XUL
QA Contact: xptoolkit.xul → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: