Closed Bug 89165 Opened 23 years ago Closed 23 years ago

File|Exit should not kill -turbo mode

Categories

(Core Graveyard :: Cmd-line Features, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.3

People

(Reporter: cathleennscp, Assigned: bugzilla)

References

Details

(Whiteboard: [PDT+] have patch, r, sr. eta=07/09 on Branch and Trunk.)

Attachments

(1 file)

Blocks: 75599
Keywords: nsBranch
QA Contact: sairuh → paw
Wrong behavior. File|Exit should quit mozilla and then spawn a new instance of mozilla -turbo. See bugs about skin switching.
I'll do this. Should be easy...
Assignee: vishy → blake
Ohh, this turned out to be quite fun after all :-) Here's what I see happening: File | Exit calls nsAppShellService::Quit(). Quit() enumerates through all of the open windows, closing/destroying each one. nsXULWindow::Destroy calls nsAppShellService::UnregisterTopLevelWindow() for each window. When there are no more windows open, and if the app has decided to quit upon closing the last window, and if turbo mode isn't on, UnregisterTopLevelWindow() calls Quit() again. So we will properly bail there if we're in turbo mode. The problem, of course, is that we still have to finish out the original Quit() call. It's somewhat circular logic. An oversimplified model shows: Quit -> Close -> Destroy -> Unregister -> Quit {if no more windows && server mode && quit on last window} I see a couple possible solutions, none of which I particularly like: * Move the server mode check to Quit() and bail early when necessary. * Have UnregisterTopLevelWindow() set some mCanQuit member variable (this sucks, we may as well just move the server mode check if we're going to do this). * Handle the window enumeration in js, so that we can just call UnregisterTopLevelWindow() (which, for some odd reason, is scriptable) from js, which would Quit() for us when the conditions are right. * Some kickass idea that Dan has. Dan, any suggestions?
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9.2
Quitting doesn't work properly anyway. Sometimes windows pop up alerts after other windows have already closed.
Vishy says PDT+
Whiteboard: [PDT+]
Target Milestone: mozilla0.9.2 → mozilla0.9.3
Whiteboard: [PDT+] → [PDT+] eta=07/06 on Branch and Trunk.
Attached patch patch (sr=ben)Splinter Review
r=timeless but you can't check this into trunk before the theme switching bits are checked in.
Keywords: approval
Whiteboard: [PDT+] eta=07/06 on Branch and Trunk. → [PDT+] have patch, r, sr. eta=07/08 on Branch and Trunk.
I've noticed some pretty heavy bloat in my swapfile after I've closed all Mozilla windows in turbo mode. After CTRL-ALT-DEL for Mozilla alone in my Win95 Task Manager, my swapfile gains back about 25MB... Specifically, 1. Browsing around in Moz0.9.2 for several hours 2. Closing all instances of Mozilla 3. Noting swapfile usage at about 38% (100MB swapfile on my machine) 4. CTRL-ALT-DEL Mozilla, confirm when the dialog pops up 20 seconds later 5. Swapfile jumps 25% to about 61%. Given you're trying to shutdown the turbo mode for a few moments completely and have it restart, I figured this might be related. What about the Quit() function starting a "transitional restart program", which will independently and automatically restart Mozilla after Mozilla itself shuts down? mozrestart.bat: @echo off (sleep about ten seconds) mozilla -turbo ^Z Not the most elegant solution, but it would work...
sr=ben@netscape.com for the branch, and for the trunk if you fix the strings to use brandShortName.
Update ETA per IM w/blake. Will land when tree opens.
Whiteboard: [PDT+] have patch, r, sr. eta=07/08 on Branch and Trunk. → [PDT+] have patch, r, sr. eta=07/09 on Branch and Trunk.
Fixed.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
This breaks the Mac. This bit at the end of globalOverlay.js: if (!nativeAppSupport.isServerMode) won't work on the Mac because there is no nativeAppSupport. This patch prevents the Mac from being able to Quit.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
fix checked in. sorry.
Status: REOPENED → RESOLVED
Closed: 23 years ago23 years ago
Resolution: --- → FIXED
Conrad - could you verify that the mac works okay now?
I checked the Mac. The mac worked with yesterday's branch build.
Verified on the branch using build 2001071705-0.9.2
Verified on trunk build 2001071803
Status: RESOLVED → VERIFIED
No longer blocks: 75599
Blocks: 75599
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: