Closed Bug 893324 Opened 6 years ago Closed 6 years ago
"Assertion failure: m
Cleaned Up" quitting during alert, with show Modal Dialog
1. Set: user_pref("dom.disable_open_during_load", false); 2. Load the testcase 3. While the alert is still up, press Cmd+Q Assertion failure: mCleanedUp, at dom/base/nsGlobalWindow.cpp:1258 Based on the stack trace, I suspect bug 789919 (snow-white).
> Based on the stack trace, I suspect bug 789919 (snow-white). Except the fuzzer found it on July 8, before snow-white landed. So maybe bug 860941?
Stacks that involve the destructor of any CCed thing are now going to involve SnowWhiteKiller.
Assignee: nobody → bobbyholley+bmo
Historically, we've had a bunch of complicated machinery to delay the call to CleanUp() for modal dialogs, since we needed to harvest the return value after the window closed. But in the current world we don't actually null out mReturnValue in CleanUp() at all, which presumably happened sometime around the time mReturnValue became cycle-collected. So this stuff can just go away. \o/ That simplification is righteous in itself. But it also fixes the bug here as- filed. When the user quits while a modal dialog is currently being displayed, a failure code ends up bubbling up through windowWatcher to the OpenInternal call in nsGlobalWindow::ShowModalDialog, which means that we're unable to do our delayed CleanUp() call for the outer modal window. At first it seemed like a hard problem to solve, but with the above it becomes trivial.
Attachment #781378 - Flags: review?(jst)
Is this simplification expected to fix any of my other recent showModalDialog bugs? (Bug 893340, bug 897399, bug 897867)
(In reply to Jesse Ruderman from comment #6) > Is this simplification expected to fix any of my other recent > showModalDialog bugs? (Bug 893340, bug 897399, bug 897867) From a cursory glance at those three bugs, I would guess 'no'.
Comment on attachment 781378 [details] [diff] [review] Invoke CleanUp synchronously and unconditionally for modal dialog windows. v1 Nice!
Attachment #781378 - Flags: review?(jst) → review+
Oh hm, looks like what appeared to be an intermittent failure on the try push occurred again when I retriggered it (test_bug893537.html). I'm still pretty sure this patch isn't the culprit, since this only affects modal dialogs, and we don't appear to be invoking showModalDialog anywhere in that test directory. If I'd noticed this before pushing, I would have done another try push on a new base rev. But for now let's just hope for the best.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in before you can comment on or make changes to this bug.