Closed
Bug 68454
Opened 23 years ago
Closed 21 years ago
Crash when trying to save an image that opens in a javascipt popup - M1BR Trunk [@ comdlg32.dll]
Categories
(Core Graveyard :: File Handling, defect)
Core Graveyard
File Handling
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla1.4alpha
People
(Reporter: matxdr, Assigned: danm.moz)
References
()
Details
(Keywords: crash, testcase, topcrash+, Whiteboard: [adt3])
Crash Data
Attachments
(2 files, 2 obsolete files)
1.23 KB,
text/plain
|
Details | |
20.40 KB,
patch
|
bryner
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
Using build 2001020904. Go to http://cyndilauper.com/pictures_det.asp?shname=offic. Click on any picture, a pop up will open with the piicture in it. Right click in that pop up, select save as. Result: Crash Expected: Save image as dialog
Comment 1•23 years ago
|
||
in my place it doesn't crash, but indeed there's no 'save image as' dialog, just 'save (page) as'...
Comment 4•23 years ago
|
||
talkback says: COMDLG32.DLL + 0x1adb0 (0x7fe1adb0) 0x2474ffff I think that's a windows library. not very informative :(
Assignee: asa → vishy
Component: Browser-General → XP Apps
QA Contact: doronr → sairuh
Comment 5•23 years ago
|
||
interesting. i'm using 2001.02.15.08 comm bits on linux --i don't get a crash. i do get the Save File dialog, go thru the motions to save the file [select dir, supply filename (fwiw, i saved it as gif), click OK], but when i check the target dir, nothing is saved! over to bill [tentatively] --is what i'm seeing a dup? is anyone else able to reproduce either the crash, or the inability to save the file? thx!
Assignee: vishy → law
Status: UNCONFIRMED → NEW
Ever confirmed: true
I can reproduce this (more or less) with a recent debug build. Those popup pages are nasty. They have an onblur handler that closes the window. Apparently, dismissing a context menu triggers that handler, which closes the window. When the context menu itself triggers actions that need the window (e.g., Save As...), things go haywire. At least that's my guess. Probably an event/window kind of thing (for saair or danm), but I'll investigate further. This is pretty severe (content can encourage the user to crash the browser); nominating for nsbeta1.
Keywords: nsbeta1-
Updated•23 years ago
|
I attached the call stack I get to when I recreate this in the debugger. Something is going very wrong as a result of the file picker's parent being closed out from under it. Handing off to Dan Matejka (who used to be a big Cyndi Lauper fan, I hear).
Assignee: law → danm
Comment 10•23 years ago
|
||
->0.9.3 unless this is more widespread (Sorry, Cyndi!)
Target Milestone: mozilla0.9.2 → mozilla0.9.3
Keywords: nsenterprise
Comment 11•23 years ago
|
||
*** Bug 89131 has been marked as a duplicate of this bug. ***
Comment 13•23 years ago
|
||
Adding talkback keyword topcrash, sig in the summary and cc'ing some talkback folks. Clutter everywhere.
Keywords: topcrash
Summary: Crash when trying to save an image that opens in a javascipt popup → Crash when trying to save an image that opens in a javascipt popup [@ nsVoidArray::RemoveElement]
Comment 14•23 years ago
|
||
Removing topcrash+signature. I think you've got the wrong bug.
Keywords: topcrash
Summary: Crash when trying to save an image that opens in a javascipt popup [@ nsVoidArray::RemoveElement] → Crash when trying to save an image that opens in a javascipt popup
Comment 15•23 years ago
|
||
Works for me on Windows. Anyone else?
Comment 16•23 years ago
|
||
I crash, current branch or trunk on win2k, for the steps to reproduce at the beginning of this bug.
Updated•23 years ago
|
Target Milestone: mozilla0.9.3 → mozilla0.9.4
Updated•22 years ago
|
Keywords: nsenterprise → nsenterprise-
Comment 17•22 years ago
|
||
I get this problem, too, only I am able to repeat on any arbitary image. I tried it, in fact, on the main Mozilla banner at mozilla.org and the crash still happened. Interestingly enough, I saved the image using IE 5.5, and Mozilla refused to read it. I then tried to save the image using Netscape 4.7 and everything worked fine. I'm not sure if that new information helps any.
Comment 18•22 years ago
|
||
I was digging around in Talkback data and came across a comment mentioning this bug. Here is the info: ===> 4 0x00000000 8560629a ===> 0x00000000 Crash date range: 2001-09-15 to 2001-09-18 Min/Max Seconds since last crash: 157 - 150102 Min/Max Runtime: 157 - 150102 Count Platform List 1 Linux 2.4.5 2 Linux 2.4.9 1 Windows NT 5.1 build 2600 Count Build Id List 4 2001091311 Comment Keywords Count Offset and and their stack traces ===> 0x00000000 8560629a <=== 0x00000000 (35549279) URL: www.subaru.com (35549279) Comments: Clicking around caused a crash. Site uses a lot of Flash and JavaScript. (35521442) Comments: Just looking at the preferences. Didn't change anything! (35466168) URL: http://cyndilauper.com/pictures_det.asp?shname=offic (35466168) Comments: Crash in response to bug #68454Mozilla 0.9.4 (build 2001091303) on WindowsXP Pro (35417357) Comments: in the preferences - in the "tree":expanded the whole tree compressed the first folder againbang Incident 35466168 will probably be of most interest. The last comment about preferences I think is actually a crash represented by bug 86723. I can't see this bug and that bug being related, but Talkback reported both of them with the same stack signature and offset...weird.
Comment 19•22 years ago
|
||
spam: over to File Handling. i have not changed the assigned developer [or the other fields for that matter], so if anyone realizes that a bug should have a more appropriate owner, go ahead and change it. :)
Component: XP Apps → File Handling
Comment 20•22 years ago
|
||
*** Bug 115542 has been marked as a duplicate of this bug. ***
Comment 21•22 years ago
|
||
No crash with Linux 2002032306. (No option in the popup to save the pic either.) I still crash when I use old builds. Has this been fixed ?
Comment 22•22 years ago
|
||
*** Bug 134406 has been marked as a duplicate of this bug. ***
Comment 23•22 years ago
|
||
Crash with 2002040903/Win2K -> TB5004684W and TB5004607X.
Comment 24•22 years ago
|
||
*** Bug 132532 has been marked as a duplicate of this bug. ***
Comment 25•22 years ago
|
||
Nominating. See bug 159793 for an always reproducible test case. This bug happens only on Windows. It crashes in the "file save as dialog" provided by the windows operating system. We dereference a null pointer. It seems, the dialog inside comdlg.dll received a pointer from Mozilla - but because the Mozilla window closes, the common dialog crashes.
Keywords: nsbeta1
Comment 26•22 years ago
|
||
What I saw (bug 132532) was that the parent window handle specified was destroyed or otherwise invalid.
Comment 27•22 years ago
|
||
Adding M1BR Trunk [@ comdlg32.dll] so summary and topcrash+, testcase keywords. This is a topcrasher on the Gecko 1.0 branch and there are also incidents on the MozillaTrunk. A reproducible case is noted in comment #25.
Comment 28•22 years ago
|
||
(er, noting that, on the 1.0 branch, 4 talkback incidents is enough to grab the seventh spot on the talkback top of the pops, and, er, kaie submitted the requisite 4 incidents.).
Comment 29•22 years ago
|
||
Marking as adt3 based on Comment #28 From John Morrison. 4 incidents, submitted byt the same person, doesn't seem like a topcrasher IMHO. Are there any other recent incidents other than kaie's in talkback?
Whiteboard: [adt3] [ETA Needed]
Comment 30•22 years ago
|
||
Hmm, didn't want to discourage a fix. It's been a long-standing known problem that bringing up a dialog from the context window for a window that sets 'onblur="self.close()"' will crash.
Comment 31•22 years ago
|
||
Actually, when I went to the brief report on climate it only showed the four entries by kaie. But when I ran this query myself, I got 143 crashes in comdlg32.dll since 07/01 on all builds (Gecko1.0, Trunk, 6.x). Not all the crashes are this one (some refer to printing) but many refer to saving an image (often also mentioning popup). I still think doing 'onblur="self.close()"' is a little sick, but it is a not totally uncommon trap for the unwary.
Comment 32•21 years ago
|
||
the screenshot on http://www.activestate.com/Products/Komodo/ will also crash when trying to 'Save Image As...' TB11737012H
Updated•21 years ago
|
QA Contact: sairuh → petersen
Comment 33•21 years ago
|
||
Moving milestone out to future since we've obviously missed the 1.1beta. Dan can let us know when he expects this will get fixed when he gets around to looking at it again.
Target Milestone: mozilla1.1beta → Future
Comment 34•21 years ago
|
||
*** Bug 176824 has been marked as a duplicate of this bug. ***
Comment 35•21 years ago
|
||
*** Bug 177312 has been marked as a duplicate of this bug. ***
Comment 36•21 years ago
|
||
*** Bug 180056 has been marked as a duplicate of this bug. ***
Comment 37•21 years ago
|
||
*** Bug 162601 has been marked as a duplicate of this bug. ***
Comment 38•21 years ago
|
||
No talkback incidents from recent builds, and not showing up on any talkback reports. Marking fixed.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 39•21 years ago
|
||
Still there in Mozilla 1.2.1 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2.1) Gecko/20021130 Reproduce as desribed. Sent TB16453791H
Comment 40•21 years ago
|
||
Confirming and reopening bug. Still reproducible with latest trunk on W2K using testcase from bug 159793.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 41•21 years ago
|
||
Just a bit of status while I beat on this bug. Kai's testcase (comment 40) still demonstrates the bug. But the original testcase currently appears fixed because it's concealed by some very messed up event handling in the trunk. Cyndi's popups don't crash because they never get blur events at all. See bug 191154. (Even if you have a special window that gets blur events, it'll miss the first one. See bug 166748. And once it starts getting events it'll get too many. Ssee bug 164686.) So anyway, at least I understand why this crash happens less often than it once did.
Whiteboard: [adt3] [ETA Needed] → [adt3] [ETA: soon. ugly but working patch for Windows in hand]
Assignee | ||
Comment 42•21 years ago
|
||
This is a windows-only version of the fix to solicit reviews on the direction I'm taking with this. The bug is, windows with blur handlers which close the window do indeed close as soon as context-menu->SaveImageAs summons the filepicker dialog. Ugliness ensues. I believe it's best to suppress blur events from the filepicker. IE behaves this way. bryner and I figured there were two places to do this, in nsEventStateManager or in nsWindow. nsESM is probably more correct but that module is pretty much hidden from nsFilePicker (widget) code. The nsWindow route requires individual fixes for each platform but involves less lifting of skirts. This patch fixes the crash on Windows. Barring allergic reactions from widget people, I intend to check in this patch with some cleanup, along with *nix and Mac versions. Still I'm more interested in approval of concept than a real review at this point.
Assignee | ||
Comment 43•21 years ago
|
||
Replacing the original patch. Once again this bug happens because we send blur events to the window owning a filepicker window. If that window contains a blur handler that closes itself, the window containing the data referenced by the filepicker is destroyed out from underneath it. IE doesn't send blur events in this case, and that seems the way to be. Sadly, the Windows and gtk builds have completely different behaviour. The gtk build uses a XUL filepicker; Windows a native one. I've chosen to suppress blur events on XUL platforms within the DOM window, and on native platforms within their respective widget libraries. The two systems are completely independent and parallel. They could be hooked together. However that would involve changing nsIWidget. There's resistance to that (though it's not out of the question). It would also require getting at Views from within the widget code. Again this is not impossible but the system is designed to be opaque in that direction and I thought it best not to pierce the veil. Oh, and Mac OSX build doesn't have the bug at all. Yay Mac OSX! So here it is. It ain't pretty. It works.
Attachment #113553 -
Attachment is obsolete: true
Assignee | ||
Comment 44•21 years ago
|
||
Much like the last patch (see comment 43) except the blurSuppression method has been moved from nsIDOMWindowInternal to nsIBaseWindow.
Attachment #113868 -
Attachment is obsolete: true
Comment 45•21 years ago
|
||
Comment on attachment 114056 [details] [diff] [review] suppress blur events from the filepicker sr=jst
Attachment #114056 -
Flags: superreview+
Comment 46•21 years ago
|
||
Comment on attachment 114056 [details] [diff] [review] suppress blur events from the filepicker ew. nsIBaseWindow strikes again. I really don't understand why we have this interface or why we have so many implementations of it. Anyway, r=me on this patch.
Attachment #114056 -
Flags: review+
Comment 47•21 years ago
|
||
Dan, Could you factor this code into a separate member function and call it from both GetParent and BlurEventsSuppressed? // this is GetParent(), but without the mIsTopWidgetWindow check + if (mIsDestroying || mOnDestroyCalled) + return PR_FALSE; + + nsWindow *widget = 0; + if (mWnd) { + HWND parent = ::GetParent(mWnd); + if (parent) { + widget = GetNSWindowPtr(parent); + if (widget) + if (widget->mIsDestroying) + widget = nsnull; + else + NS_ADDREF(widget); + } + } With that change r=kmcclusk@netscape.com for the widget module changes.
Assignee | ||
Comment 48•21 years ago
|
||
surely
Whiteboard: [adt3] [ETA: soon. ugly but working patch for Windows in hand] → [adt3]
Target Milestone: Future → mozilla1.4alpha
Comment 49•21 years ago
|
||
*** Bug 162821 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 50•21 years ago
|
||
Patch checked in 24 Feb. PS I didn't refactor GetParent (comment 47) but instead went with the simple, tight (while ::GetParent(HWND)) loop already in use throughout the file (seven other places). These (and two other instances that aren't in a loop) could all probably stand to be rolled up into a GetParent(bool stop at top window, bool immediate or keep going) method. But anyway, bug's fixed.
Status: REOPENED → RESOLVED
Closed: 21 years ago → 21 years ago
Resolution: --- → FIXED
Comment 51•21 years ago
|
||
Verified in the 2003-03-13-04 Win32 and 2003-03-13-03 Mach-0 OS X Trunk builds.
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 52•20 years ago
|
||
*** Bug 196806 has been marked as a duplicate of this bug. ***
Updated•13 years ago
|
Crash Signature: [@ comdlg32.dll]
Updated•7 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•