bindings: Move DOMDataStore on Oilpan's heap
This change moves DOMDataStore on Oilpan's heap and models wrappable->wrapper connections using an ephemeron hash map for non-main worlds. Previously, DOMDataStore would be off heap and the that maintains the references would use Untraced<> as well as custom Trace() methods for non-GCed objects. That also required callbacks on the references to manually remove the entries to compact the hash map. With ephemerons: - The hashmap is kept compact (unused buckets are deleted) by the GC which allows us to avoid callbacks on references. - There are no more GC plugin exceptions. - All trace methods will be on garbage collection objects. - There's no need to trace through all DOM worlds for each ScriptWrappable in its trace method. - References will show up in heap snapshots. Bug: 1013212 Change-Id: Id3475707d34191f9f3b6b099c2495ee0150d982e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1849677 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:Kentaro Hara <haraken@chromium.org> Reviewed-by:
Yuki Shiino <yukishiino@chromium.org> Cr-Commit-Position: refs/heads/master@{#705062}
Showing
Please register or sign in to comment