Closed Bug 400321 Opened 14 years ago Closed 14 years ago
Fix appshell workarounds for Camino crashing on exit
My appshell patch to process Gecko events on demand (bug 395397) contained two workarounds for a problem in Camino that it seemed to trigger -- with this appshell patch, Camino was much more likely to crash on exit. But these workarounds were only partially effective, and Camino continues to be quite likely to crash on exit (see bug 398002). This patch's workaround gets to the bottom of the problem, and seems to resolve it entirely. It replaces the two previous workarounds. The basic problem is a design flaw in Camino: When you quit Camino with at least one window open, Camino (indirectly) destroys the currently running appshell as the last browser window (class BrowserWindow) is closed. This means that some Camino code will run _after_ the appshell is destroyed. But as the appshell is destroyed it releases all its own autorelease pools -- which can (and normally should) cause all objects in any autorelease pool to be released, including all of the remaining autorelease pools. This should (and with the new appshell often does) lead to errors (in the system console) about objects being leaked because no autorelease pool is in place, and to crashes caused by references to deleted objects. These problems should have been visible before my bug 395397 appshell patch was landed -- I don't know why they weren't. But in any case they _are_ now quite visible. In principle this problem should be resolved in Camino. But that could be a lot of trouble, and I've found a very simple and effective workaround.
Attachment #285400 - Flags: review?(joshmoz)
Attachment #285400 - Flags: superreview?(roc) → superreview+
Josh, please mark this blocking1.9+. Then I'll seek approval to land it.
Flags: blocking1.9? → blocking1.9+
Target Milestone: --- → mozilla1.9 M10
Comment on attachment 285400 [details] [diff] [review] Fix appshell workarounds for Camino crashing on exit a=endgame drivers for after M9 freeze
Landed on trunk.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.