In bug 687372, 690469, 689045 I have implemented Swap functionality in such way that we can drop backBuffers any time and those will be created again on update request, and no anymore dependency on static front/back buffers pair. So right now we can think about adding some ShadowBackBuffer Garbage collecting functionality which would allow us to drop backBuffers when those are not in use... For example we can remember last paint time for ShadowBackBuffers and after each layers transaction start GC timer which will drop buffers which are not in use for long time, let say 10 seconds... I believe we have already similar implementation somewhere else, so probably we should use similar protocol for GC'ing back buffers Any suggestions?
What you're talking about isn't a GC, but a kind of inactivity timeout. We have nsExpirationTracker that you could probably use. My gut feeling would be to have a fairly high timeout, like 30 seconds or so, but if you can get good measurements of OOM-killer vulnerability and repaint latency before/after these patches with various timeout values, that'd be best of all.
Is this going anywhere? Maybe we can close it as INCOMPLETE or WONTFIX?
it worse to to fix this, for XUL and of OMTC fennec. Got screwed with some long regressions around that stuff, but at some point I'll return to this, or probably someone else could fix this, it should not be complicated.
I'll repeat comment 2: is this going anywhere?