Starting and exiting firebird, there's a bunch of stuff leaked. I think the root is a cycle through JS involving the observer service and an implementation of nsIObserver in JS. The wrapped JS object in this cycle roots its global object, etc. The information I have on this cycle is: 08741478 object 0x880f808 XPCWrappedNative_NoHelper via nsXPCWrappedJS::mJSObj(Object).observe(Function).__parent__(Call).service(XPCWrappedNative_NoHelper). plus a pair of stacks that I'll attach.
This looks like a problem: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/browser/base/content/browser.js&rev=1.265&mark=201,211-212#198 The closure creates a cycle.
...which would make it basically the same as bug 170022.
Created attachment 139288 [details] [diff] [review] patch
Created attachment 139294 [details] [diff] [review] patch This patch fixes the suite as well.
Comment on attachment 139294 [details] [diff] [review] patch Sure, the extra function wrapping the object initializer containing a method was unnecessary, a garbage-entrainment hazard. Was this pattern copied/mutated anywhere else? sr=me. /be
Fix checked in to trunk, 2004-01-17 14:41 -0800.
And I changed the second addObserver in navigator.js to removeObserver before I checked in.
any ideas when this bug appeared? was it on the 20030114 trunk?
It's been around since before Firebird forked from Seamonkey.