When running toolkit/components/addoncompat/ we end up holding onto a docshell for too long. Bill and I looked at this, and it seems like what is happening is that the _webNavigation field of WebNavigation keeps the docshell alive, even past when we clear the webNavigation field off of the global. Bill wrote a patch to fix this that just makes us QI it every time we access it, avoiding the leak.
Created attachment 8570736 [details] [diff] [review] Don't cache the docshell in WebNavigation in browser-child.js. Also don't cache the session history, because we only use it in init. (Bill wrote this patch.)
Try run was green. It looks like this fixes up almost all of the remaining bc and dt DOCSHELL DOMWINDOW leaks, based on Bill's push to Holly. https://hg.mozilla.org/integration/mozilla-inbound/rev/a761ac6f8bcc
This seems to be making opt builds time out in e10s bc3, in various thumbnails tests. Very weird. I think the timeouts are due to this exception being thrown: 09:18:10 WARNING - TEST-UNEXPECTED-FAIL | unknown test url | uncaught exception - ReferenceError: executeSoon is not defined at chrome://mochitests/content/browser/toolkit/components/thumbnails/test/head.js:228
backed out: https://hg.mozilla.org/integration/mozilla-inbound/rev/d0e70d2cf479 I guess I'll look into these failures on Monday.
Created attachment 8585216 [details] [diff] [review] patch v2 The original patch had a bug. There's a pre-existing comment explaining that we need to keep the sessionHistory alive. This patch regressed that. Anyway, this new patch fixes the issue and still avoids leaks.