[Webkit-unassigned] [Bug 53659] Web Inspector: Better support for finding "leaked" DOM

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Feb 3 15:31:10 PST 2011


Tony Gentilcore <tonyg at chromium.org> changed:

           What    |Removed                     |Added
                 CC|                            |eae at chromium.org,
                   |                            |mihaip at chromium.org

--- Comment #2 from Tony Gentilcore <tonyg at chromium.org>  2011-02-03 15:31:09 PST ---
(In reply to comment #1)
> Can you please provide more info about the caching system (or provide me with source code pointers privately): what the caching system does? If a node is either in cache or in page's DOM tree, it should be never collected, right? So apparently there is some scenario for nodes disposal.

I've added eae who might be able to explain a little better. But as a simplistic example, imagine a fixed size array where each item points to a DOM node that is no longer attached to the document. As new nodes are added to the front of the array, old nodes are pushed out the end. The app expects that the ones pushed out the end are collected. However, there is some other piece of code (other than the caching array) which has a reference to the node and is preventing its collection. But given the size of the codebase it is difficult to pinpoint what other piece of code is holding the reference alive.

> For the new heap profiler (see https://bugs.webkit.org/show_bug.cgi?id=50510) I maintain a map of unique object IDs for heap contents that help to track objects lifetime. Will this help you?

It sounds like the same problem, but I from the description in the bug, I don't fully understand the new feature.

> Some questions:
>  - by 'id of the element' do you mean DOM nodes implementation (C++) object addresses, or what?

The DOM node's id.
<div id=foo></div>
I know this may seem awkward because it isn't always available, but when it is available it is the key piece of information that could help a web app developer understand which node this is.

>  - how can I know that a DOM node is held only from VM -- by verifying that refcount == 1?

I'm not very familiar with how GC works, but Jamesr give me a quick overview. Perhaps we can consider it help only from the VM if the object groups's refcount is equal to the number of JS references.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list