Closed
Bug 490932
Opened 16 years ago
Closed 16 years ago
crash [@ nsFileView::SetDirectory(nsIFile*)] in XUL file chooser
Categories
(SeaMonkey :: Download & File Handling, defect)
Tracking
(status1.9.1 .4-fixed)
RESOLVED
FIXED
seamonkey2.0b2
Tracking | Status | |
---|---|---|
status1.9.1 | --- | .4-fixed |
People
(Reporter: tonymec, Assigned: timeless)
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
2.88 KB,
patch
|
neil
:
review+
neil
:
superreview+
dveditz
:
approval1.9.1.4+
|
Details | Diff | Splinter Review |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b5pre) Gecko/20090428 SeaMonkey/2.0b1pre - Build ID: 20090428000523
Crash in XUL file chooser for "Save Link Target As..."
Reproducible: Tried but couldn't
bp-b999fcf6-f6e3-4a47-9f2f-0fd562090429
Here comes the Breakpad/Soccorro report:
*Details*
---------
Signature nsFileView::SetDirectory(nsIFile*)
UUID b999fcf6-f6e3-4a47-9f2f-0fd562090429
Time 2009-04-29 08:44:54.882937
Uptime 88224
Last Crash 2326252 seconds before submission
Product SeaMonkey
Version 2.0b1pre
Build ID 20090428000523
Branch 1.9.1
OS Linux
OS Version 0.0.0 Linux 2.6.27.21-0.1-pae #1 SMP 2009-03-31 14:50:44 +0200 i686 GNU/Linux
CPU x86
CPU Info AuthenticAMD family 1 model 7 stepping 1
Crash Reason SIGSEGV
Crash Address 0xb4f2a1e4
User Comments At "save Link Target As", waiting for the XUL file selector to be fully displayed
Processor Notes
*Frames* - Crashing Thread
--------
0 libfileview.so nsFileView::SetDirectory toolkit/components/filepicker/src/nsFileView.cpp:410
1 libfileview.so nsFileView::SetShowHiddenFiles toolkit/components/filepicker/src/nsFileView.cpp:319
2 libxpcom_core.so NS_GetXPTCallStub_P
3 libxpconnect.so XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:2450
4 libxpconnect.so XPC_WN_GetterSetter js/src/xpconnect/src/xpcprivate.h:2326
5 libmozjs.so js_Invoke js/src/jsinterp.cpp:1365
6 libmozjs.so js_InternalInvoke js/src/jsinterp.cpp:1426
7 libmozjs.so js_InternalGetOrSet js/src/jsinterp.cpp:1489
8 libmozjs.so js_SetSprop js/src/jsscope.h:373
9 libmozjs.so js_NativeSet js/src/jsobj.cpp:4298
10 libmozjs.so js_SetPropertyHelper js/src/jsobj.cpp:4649
11 libmozjs.so js_Interpret js/src/jsinterp.cpp:4741
12 libmozjs.so js_Invoke js/src/jsinterp.cpp:1373
13 libmozjs.so js_InternalInvoke js/src/jsinterp.cpp:1426
14 libmozjs.so JS_CallFunctionValue js/src/jsapi.cpp:5187
15 libgklayout.so nsJSContext::CallEventHandler dom/src/base/nsJSEnvironment.cpp:2011
16 libgklayout.so nsJSEventListener::HandleEvent dom/src/events/nsJSEventListener.cpp:247
17 libgklayout.so nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:1101
18 libgklayout.so nsEventListenerManager::HandleEvent content/events/src/nsEventListenerManager.cpp:1206
19 libgklayout.so nsEventTargetChainItem::HandleEvent content/events/src/nsEventDispatcher.cpp:236
20 libgklayout.so nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventDispatcher.cpp:300
21 libgklayout.so nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:514
22 libgklayout.so PresShell::HandleDOMEventWithTarget layout/base/nsPresShell.cpp:6182
23 libgklayout.so nsButtonBoxFrame::DoMouseClick layout/xul/base/src/nsButtonBoxFrame.cpp:160
24 libgklayout.so nsButtonBoxFrame::MouseClicked layout/xul/base/src/nsButtonBoxFrame.h:62
25 libgklayout.so nsButtonBoxFrame::HandleEvent layout/xul/base/src/nsButtonBoxFrame.cpp:130
26 libgklayout.so nsPresShellEventCB::HandleEvent layout/base/nsPresShell.cpp:1237
27 libgklayout.so nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventDispatcher.cpp:346
28 libgklayout.so nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:514
29 libgklayout.so PresShell::HandleEventInternal layout/base/nsPresShell.cpp:6136
30 libgklayout.so PresShell::HandleEventWithTarget layout/base/nsPresShell.cpp:6041
31 libgklayout.so nsEventStateManager::CheckForAndDispatchClick content/events/src/nsEventStateManager.cpp:4073
32 libgklayout.so nsEventStateManager::PostHandleEvent content/events/src/nsEventStateManager.cpp:3036
33 libgklayout.so PresShell::HandleEventInternal layout/base/nsPresShell.cpp:6157
34 libgklayout.so PresShell::HandlePositionedEvent layout/base/nsPresShell.cpp:6024
35 libgklayout.so PresShell::HandleEvent layout/base/nsPresShell.cpp:5884
36 libgklayout.so nsViewManager::HandleEvent view/src/nsViewManager.cpp:1394
37 libgklayout.so nsViewManager::DispatchEvent view/src/nsViewManager.cpp:1353
38 libgklayout.so HandleEvent view/src/nsView.cpp:167
39 libwidget_gtk2.so nsWindow::DispatchEvent widget/src/gtk2/nsWindow.cpp:574
40 libwidget_gtk2.so nsWindow::OnButtonReleaseEvent widget/src/gtk2/nsWindow.cpp:2808
41 libwidget_gtk2.so button_release_event_cb widget/src/gtk2/nsWindow.cpp:5369
42 libgtk-x11-2.0.so.0.1400.4 libgtk-x11-2.0.so.0.1400.4@0x12dec5
43 libgobject-2.0.so.0.1800.2 libgobject-2.0.so.0.1800.2@0x9d8a
44 libgobject-2.0.so.0.1800.2 libgobject-2.0.so.0.1800.2@0x2012c
45 libgobject-2.0.so.0.1800.2 libgobject-2.0.so.0.1800.2@0x216ba
46 libgobject-2.0.so.0.1800.2 libgobject-2.0.so.0.1800.2@0x21cb5
47 libgtk-x11-2.0.so.0.1400.4 libgtk-x11-2.0.so.0.1400.4@0x2433fd
48 libgtk-x11-2.0.so.0.1400.4 libgtk-x11-2.0.so.0.1400.4@0x1269db
49 libgtk-x11-2.0.so.0.1400.4 libgtk-x11-2.0.so.0.1400.4@0x127d86
50 libgdk-x11-2.0.so.0.1400.4 libgdk-x11-2.0.so.0.1400.4@0x496c9
51 libglib-2.0.so.0.1800.2 libglib-2.0.so.0.1800.2@0x399c7
52 libglib-2.0.so.0.1800.2 libglib-2.0.so.0.1800.2@0x3d082
53 libglib-2.0.so.0.1800.2 libglib-2.0.so.0.1800.2@0x3d240
54 libwidget_gtk2.so nsAppShell::ProcessNextNativeEvent widget/src/gtk2/nsAppShell.cpp:144
55 libwidget_gtk2.so nsBaseAppShell::DoProcessNextNativeEvent widget/src/xpwidgets/nsBaseAppShell.cpp:151
56 libwidget_gtk2.so nsBaseAppShell::OnProcessNextEvent widget/src/xpwidgets/nsBaseAppShell.cpp:278
57 libxpcom_core.so nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:497
58 libxpcom_core.so NS_ProcessNextEvent_P nsThreadUtils.cpp:227
59 libnsappshell.so nsXULWindow::ShowModal xpfe/appshell/src/nsXULWindow.cpp:415
60 libnsappshell.so nsContentTreeOwner::ShowAsModal xpfe/appshell/src/nsContentTreeOwner.cpp:528
61 libembedcomponents.so nsWindowWatcher::OpenWindowJSInternal embedding/components/windowwatcher/src/nsWindowWatcher.cpp:989
62 libembedcomponents.so nsWindowWatcher::OpenWindowJS embedding/components/windowwatcher/src/nsWindowWatcher.cpp:486
63 libgklayout.so nsGlobalWindow::OpenInternal dom/src/base/nsGlobalWindow.cpp:7310
64 libgklayout.so nsGlobalWindow::OpenDialog dom/src/base/nsGlobalWindow.cpp:5130
65 libxpcom_core.so NS_GetXPTCallStub_P
66 libxpconnect.so XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:2450
67 libxpconnect.so XPC_WN_CallMethod js/src/xpconnect/src/xpcwrappednativejsops.cpp:1583
68 libmozjs.so js_Invoke js/src/jsinterp.cpp:1365
69 libmozjs.so js_Interpret js/src/jsinterp.cpp:5132
70 libmozjs.so js_Invoke js/src/jsinterp.cpp:1373
71 libxpconnect.so nsXPCWrappedJSClass::CallMethod js/src/xpconnect/src/xpcwrappedjsclass.cpp:1614
72 libxpconnect.so nsXPCWrappedJS::CallMethod js/src/xpconnect/src/xpcwrappedjs.cpp:561
73 libxpcom_core.so PrepareAndDispatch xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp:95
74 libxpcom_core.so NS_GetXPTCallStub_P
75 libxpconnect.so XPCWrappedNative::CallMethod js/src/xpconnect/src/xpcwrappednative.cpp:2450
76 libxpconnect.so XPC_WN_CallMethod js/src/xpconnect/src/xpcwrappednativejsops.cpp:1583
77 libmozjs.so js_Invoke js/src/jsinterp.cpp:1365
78 libmozjs.so js_Interpret js/src/jsinterp.cpp:5132
79 libmozjs.so js_Invoke js/src/jsinterp.cpp:1373
80 libmozjs.so js_InternalInvoke js/src/jsinterp.cpp:1426
81 libmozjs.so JS_CallFunctionValue js/src/jsapi.cpp:5187
82 libgklayout.so nsJSContext::CallEventHandler dom/src/base/nsJSEnvironment.cpp:2011
83 libgklayout.so nsJSEventListener::HandleEvent dom/src/events/nsJSEventListener.cpp:247
84 libgklayout.so nsEventListenerManager::HandleEventSubType content/events/src/nsEventListenerManager.cpp:1101
85 libgklayout.so nsEventListenerManager::HandleEvent content/events/src/nsEventListenerManager.cpp:1206
86 libgklayout.so nsEventTargetChainItem::HandleEvent content/events/src/nsEventDispatcher.cpp:236
87 libgklayout.so nsEventTargetChainItem::HandleEventTargetChain content/events/src/nsEventDispatcher.cpp:300
88 libgklayout.so nsEventDispatcher::Dispatch content/events/src/nsEventDispatcher.cpp:514
89 libgklayout.so PresShell::HandleDOMEventWithTarget layout/base/nsPresShell.cpp:6182
90 libgklayout.so nsXULMenuCommandEvent::Run layout/xul/base/src/nsXULPopupManager.cpp:2074
91 libxpcom_core.so nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:510
92 libxpcom_core.so NS_ProcessNextEvent_P nsThreadUtils.cpp:227
93 libwidget_gtk2.so nsBaseAppShell::Run widget/src/xpwidgets/nsBaseAppShell.cpp:170
94 libtoolkitcomps.so nsAppStartup::Run toolkit/components/startup/src/nsAppStartup.cpp:193
95 libxul.so XRE_main toolkit/xre/nsAppRunner.cpp:3298
96 seamonkey-bin main suite/app/nsSuiteApp.cpp:103
97 libc-2.9.so libc-2.9.so@0x16704
Comment 1•16 years ago
|
||
Tony, FF and SM have no other top of stack crashes in the past month but yours. And nothing else in bugzilla
Status: UNCONFIRMED → NEW
Ever confirmed: true
Reporter | ||
Comment 2•16 years ago
|
||
(In reply to comment #1)
> Tony, FF and SM have no other top of stack crashes in the past month but yours.
> And nothing else in bugzilla
Hm, if I can't reproduce it and no-one else sees it, then...
Of course, the fewer crashes the better. FWIW, I'm on openSUSE 11.1, I install all available Online Updates (if any) at least once a day, and if I can help the devs track the source of the bug by checking the version of some SuSE Linux package, just say which one (and warn me by private mail in addition to the bugmail, if you want a quick reaction). Also FWIW, I have Gnome2 and KDE4 installed but my window manager of choice is the KDE3 version.
I'm conscious of the fact that the XUL file chooser (as opposed to the OS file chooser) is little used nowadays, and requires a nondefault setting in about:config (namely: ui.allow_platform_file_picker set to false), but from my POV it has the enormous advantage of including a checkbox to display hidden files & directories, while on my OS file chooser, well, hidden F&D remain hidden whatever I do.
Assignee: nobody → timeless
Status: NEW → ASSIGNED
Attachment #379150 -
Flags: superreview?(neil)
Attachment #379150 -
Flags: review?(neil)
Comment 4•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
> NS_NewISupportsArray(getter_AddRefs(mFileList));
>+ if (!mFileList)
>+ return NS_ERROR_OUT_OF_MEMORY;
>+
> NS_NewISupportsArray(getter_AddRefs(mDirList));
>+ if (!mDirList)
>+ return NS_ERROR_OUT_OF_MEMORY;
>+
> NS_NewISupportsArray(getter_AddRefs(mFilteredFiles));
>+ if (!mFilteredFiles)
>+ return NS_ERROR_OUT_OF_MEMORY;
Ideally you would file a [good first bug] on converting these to nsCOMArray.
I really think we can assume that this QI will succeed... r+sr=me on the rest.
> nsCOMPtr<nsIFile> theFile = do_QueryInterface(nextItem);
>
>- PRBool isDirectory;
>- theFile->IsDirectory(&isDirectory);
>+ PRBool isDirectory = PR_FALSE;
>+ if (theFile) {
>+ theFile->IsDirectory(&isDirectory);
>
>- if (isDirectory) {
>- PRBool isHidden;
>- theFile->IsHidden(&isHidden);
>- if (mShowHiddenFiles || !isHidden) {
>- mDirList->AppendElement(theFile);
>+ if (isDirectory) {
>+ PRBool isHidden;
>+ theFile->IsHidden(&isHidden);
>+ if (mShowHiddenFiles || !isHidden) {
>+ mDirList->AppendElement(theFile);
>+ }
> }
>- }
>- else {
>- mFileList->AppendElement(theFile);
>+ else {
>+ mFileList->AppendElement(theFile);
>+ }
Attachment #379150 -
Flags: superreview?(neil)
Attachment #379150 -
Flags: superreview+
Attachment #379150 -
Flags: review?(neil)
Attachment #379150 -
Flags: review+
oddly, qi's can fail when people do interesting things.
i don't really want to spend time updating patches. if the person pushing removes the line, i won't object, but i will nag them when someone crashes there later :)
Keywords: checkin-needed
Comment 6•16 years ago
|
||
(In reply to comment #5)
Neil, is it fine to check in this patch as is, or do you want something to be modified?
Comment 7•16 years ago
|
||
Ugh, I guess someone can implement a broken filepicker that passes a broken object to the file view that returns a broken enumerator...
Comment 8•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
Comment 2 seems to say this is npotDb: looking for approval (to be safe) rather than for blocking.
Attachment #379150 -
Flags: approval1.9.1?
Comment 9•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
http://hg.mozilla.org/mozilla-central/rev/be8e8cae360f
Attachment #379150 -
Attachment description: fix the problems → fix the problems
[Checkin: Comment 9]
Updated•16 years ago
|
Updated•16 years ago
|
Attachment #379150 -
Flags: approval1.9.1? → approval1.9.1.1?
Updated•16 years ago
|
Attachment #379150 -
Flags: approval1.9.1.1? → approval1.9.1.2?
Comment 10•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
Serge: does anyone else use this code?
Attachment #379150 -
Flags: approval1.9.1.2? → approval1.9.1.3?
Comment 11•16 years ago
|
||
I don't know more than what I wrote in comment 8.
Maybe Neil or someone else can answer your question?
Comment 12•16 years ago
|
||
(In reply to comment #10)
> (From update of attachment 379150 [details] [diff] [review])
> Serge: does anyone else use this code?
As far as I know this code is only used by the XUL file chooser which is not enabled by default (although there is a pref to enable it on Linux).
Updated•16 years ago
|
Attachment #379150 -
Flags: approval1.9.1.3? → approval1.9.1.4+
Comment 13•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
Approved for 1.9.1.4, a=dveditz for release-drivers
Updated•16 years ago
|
Keywords: checkin-needed
Whiteboard: [c-n: m-1.9.1]
Comment 14•16 years ago
|
||
Comment on attachment 379150 [details] [diff] [review]
fix the problems
[Checkin: Comment 9 & 14]
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/99dc73270940
Attachment #379150 -
Attachment description: fix the problems
[Checkin: Comment 9] → fix the problems
[Checkin: Comment 9 & 14]
Updated•16 years ago
|
status1.9.1:
--- → .4-fixed
Keywords: checkin-needed
Whiteboard: [c-n: m-1.9.1]
Target Milestone: --- → seamonkey2.0b2
Updated•14 years ago
|
Crash Signature: [@ nsFileView::SetDirectory(nsIFile*)]
You need to log in
before you can comment on or make changes to this bug.
Description
•