Closed Bug 35553 Opened 24 years ago Closed 24 years ago

leak deactivated nsXULDocuments

Categories

(Core :: DOM: UI Events & Focus Handling, defect, P1)

PowerPC
Mac System 8.6
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: waterson, Assigned: saari)

References

Details

(Keywords: memory-footprint, memory-leak, platform-parity, Whiteboard: [nsbeta2-][nsbeta3+]macos; testcase requested-ckritzer;)

The focus tracking code in nsEventStateManager assumes that NS_DEACTIVATE will 
be sent to a window before the window is closed. This isn't true on Mac, and 
causes us to leak an nsXULDocument (and about 300Kb of crap that it entrains) 
on shutdown.

We need to figure out an XP way to track the currently focused document: either 
force NS_DEACTIVATE to be sent to the window on Mac, or figure out a different 
way to maintain gLastFocusedDocument et. al.
Keywords: mlk, pp
Eh, we should be sending NS_DEACTIVATE.
Status: NEW → ASSIGNED
Priority: P3 → P1
Target Milestone: --- → M16
severe leak -> critical severity, nominating for nsbeta2, assuming that this 
isn't just a leak of app memory that is happening at shutdown and then 
immediately reused by the system.
Severity: normal → critical
Keywords: nsbeta2
[nsbeta2+]
Whiteboard: [nsbeta2+]
Blocks: 40158
Mass-moving undated nsbeta2+ bugs to M18
Target Milestone: M16 → M18
Is this the cause of leaked webshells?
Whiteboard: [nsbeta2+] → [nsbeta2+]macos
Well, the ESM is an XPCOM shutdown listener, and I can successfully release the 
ESM globals (document, content).

I think that should take care of the problem
Doesn't fit latest 'would ya pull it off the wire' criteria, marking nsbeta2-,
nominating for nsbeta3
Keywords: nsbeta3
Whiteboard: [nsbeta2+]macos → [nsbeta2-]macos
Mass update:  changing qacontact to ckritzer@netscape.com
QA Contact: janc → ckritzer
Keywords: footprint
Whiteboard: [nsbeta2-]macos → [nsbeta2-][nsbeta3+]macos
Fixed; nsEventStateManager listens for xpcom shutdown and releases anything it is 

holding onto at that point

Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Chris Saari, do ya have a testcase which would demonstrate this?
Whiteboard: [nsbeta2-][nsbeta3+]macos → [nsbeta2-][nsbeta3+]macos; testcase requested-ckritzer;
Eh, no test case, I just ran and watched the code I added to make sure it
released anything the nsEventStateManager was holding onto when the last
nsEventStateManager instance got released. That happened, so the leak should be
plugged.
Marking VERIFIED FIXED on:
- LinuxRH62 2000-09-07-08-M18 Commercial
- Win98     2000-09-07-08-M18 Mozilla
- MacOS86   2000-09-07-04-M18 Commercial

Per Saari's comments.  If you disagree, reopen.
Status: RESOLVED → VERIFIED
Component: Event Handling → User events and focus handling
You need to log in before you can comment on or make changes to this bug.