If an add-on relies on persistent references to closed pages by design (such as a form data history plugin), is there a way to adapt it to this new feature to not let Firefox sever it's references under the assumption that it's a memory leak?
If an add-on relies on persistent references to closed pages by design (such as a form data history plugin), is there a way to adapt it to this new feature to not let Firefox sever it's references under the assumption that it's a memory leak?
This actually seems to me to have a lot of implications for the design of garbage collectors generally. In theory, correct garbage collectors are never supposed to collect objects that may still be used, which in practice usually means "that are reachable". But, we've already got such a thing as "weak references" to fudge that a little. This seems like kind of the opposite idea- having a sort of "superstrong" owner reference such that once it goes away, you know that the object will never be used again (or shouldn't be, anyway, with future uses constituting bugs), and can be collected despite what other references might exist.
It also seems like one of those obvious-after-the-fact genius ideas to have garbage collection running independently per compartment. Do Web Workers, e.g., get their own separate garbage collection, too? Any kind of shared-nothing concurrency model ought to be able to do the same thing to improve GC pauses; are there language implementations (I'm thinking probably Erlang here) that actually do that?
You'd have to copy out the data you want.