Open Bug 398103 Opened 17 years ago Updated 2 years ago

Assertion failure in nsGlobalWindow::LeaveModalState

Categories

(Core :: DOM: Core & HTML, defect, P5)

defect

Tracking

()

People

(Reporter: kinetik, Unassigned)

References

()

Details

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-1) Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a9pre) Gecko/2007100114 Minefield/3.0a9pre The assertion in nsGlobalWindow::LeaveModalState consistently fires when quitting the browser from an idle window when a second window is open and blocked by a modal dialog. Reproducible: Always Steps to Reproduce: 1. Open a browser window 2. Open URL in a new browser window 3. Select File->Quit from idle browser window, click Quit Actual Results: ###!!! ASSERTION: Uh, LeaveModalState() called w/o a reachable top window?: 'Error', file /home/kinetik/work/trunk/mozilla/dom/src/base/nsGlobalWindow.cpp, line 5040 --WEBSHELL 0xb15ae200 == 6 ###!!! ASSERTION: Uh, LeaveModalState() called w/o a reachable top window?: 'Error', file /home/kinetik/work/trunk/mozilla/dom/src/base/nsGlobalWindow.cpp, line 5040 --WEBSHELL 0x8209438 == 5 Expected Results: Clean shutdown. #0 nsGlobalWindow::LeaveModalState (this=0xb168fa80) at /home/kinetik/work/trunk/mozilla/dom/src/base/nsGlobalWindow.cpp:5040 #1 0xb5c446b2 in ~nsAutoWindowStateHelper (this=0xbf8c0954) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:85 #2 0xb5c3a4f1 in nsWindowWatcher::OpenWindowJSInternal (this=0x815b400, aParent=0xb168fa80, aUrl=0xb5c81d80 "chrome://global/content/commonDialog.xul", aName=0xb5c819f3 "_blank", aFeatures=0xb5c81aa8 "centerscreen,chrome,modal,titlebar", aDialog=1, argv=0xb218c1c0, aCalledFromJS=0, _retval=0xbf8c0c00) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp:944 #3 0xb5c3ab97 in nsWindowWatcher::OpenWindow (this=0x815b400, aParent=0xb168fa80, aUrl=0xb5c81d80 "chrome://global/content/commonDialog.xul", aName=0xb5c819f3 "_blank", aFeatures=0xb5c81aa8 "centerscreen,chrome,modal,titlebar", aArguments=0xb2189e48, _retval=0xbf8c0c00) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp:418 #4 0xb5c44a9d in nsPromptService::DoDialog (this=0xb52db7e0, aParent=0xb168fa80, aParamBlock=0xb2189e48, aChromeURL=0xb5c81d80 "chrome://global/content/commonDialog.xul") at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:844 #0 nsGlobalWindow::LeaveModalState (this=0xb168fa80) at /home/kinetik/work/trunk/mozilla/dom/src/base/nsGlobalWindow.cpp:5040 #1 0xb5c446b2 in ~nsAutoWindowStateHelper (this=0xbf8c0d04) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:85 #2 0xb5c45d53 in nsPromptService::Alert (this=0xb52db7e0, parent=0xb168fa80, dialogTitle=0xbf8c0e30, text=0xbf8c0d9c) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsPromptService.cpp:213 #3 0xb5c2e586 in nsPrompt::Alert (this=0xb2189ae8, dialogTitle=0xbf8c0e30, text=0xbf8c0d9c) at /home/kinetik/work/trunk/mozilla/embedding/components/windowwatcher/src/nsPrompt.cpp:178 #4 0xb4dcce65 in nsGlobalWindow::Alert (this=0xb168fa80, aString=@0xb159b5e8) at /home/kinetik/work/trunk/mozilla/dom/src/base/nsGlobalWindow.cpp:3639
Status: UNCONFIRMED → NEW
Ever confirmed: true
Blocks: 404828
Still visible with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1a2pre) Gecko/20080811211528 Minefield/3.1a2pre ID:20080811211528 If you close the tab while loading http://www.mlb.com and have Silverlight installed, which gives high cpu load, you will get a panel with a question where to go. If the tab was closed before this assertion is listed twice: ###!!! ASSERTION: Uh, LeaveModalState() called w/o a reachable top window?: 'Error', file /Volumes/Daten/Projects/mozilla/source/mozilla/dom/src/base/nsGlobalWindow.cpp, line 5712 http://mxr.mozilla.org/mozilla-central/source/dom/src/base/nsGlobalWindow.cpp#5705
Version: unspecified → Trunk
This assertion also fires consistently when a tab that is displaying a tab-modal prompt is closed while there is another tab-modal prompt open in another tab, launched after the first one.
Blocks: 59314
Points of interest in the code: nsGlobalWindow::EnterModalState() http://mxr.mozilla.org/mozilla-central/source/dom/base/nsGlobalWindow.cpp#6569 Gets called a few instructions before LeaveModalState and has the same ASSERT, so likely docShellAsItem->GetSameTypeRootTreeItem(getter_AddRefs(root)); in nsGlobalWindow::GetTop(nsIDOMWindow** aTop) http://mxr.mozilla.org/mozilla-central/source/dom/base/nsGlobalWindow.cpp#3058 gets overwritten by another thread closing the top before the dialog gets closed. Or OpenInternal http://mxr.mozilla.org/mozilla-central/source/dom/base/nsGlobalWindow.cpp#7099 doesn't set some variables right.
https://bugzilla.mozilla.org/show_bug.cgi?id=1472046 Move all DOM bugs that haven't been updated in more than 3 years and has no one currently assigned to P5. If you have questions, please contact :mdaly.
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.