Bug 76045
Summary: | Web Inspector: [Chromium] Heap profiler need to track active DOM objects | ||
---|---|---|---|
Product: | WebKit | Reporter: | Mikhail Naganov <mnaganov> |
Component: | Web Inspector (Deprecated) | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | apavlov, ap, bweinstein, jochen, joepeck, keishi, loislo, pfeldman, pmuellr, rik, yurys |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | |||
Bug Blocks: | 78411 |
Mikhail Naganov
Active DOM objects are objects that have an internal state (e.g. XMLHttpRequest) and depending on the state may resist to be garbage-collected, even in case when they are not referenced. This way, Js leaks can occur, if such an object holds other objects.
See this report by Jochen Eisinger for details: https://docs.google.com/a/google.com/document/d/1Pd7hcFAUs_sFmpGumEkBonELlyU6diJAO9VXE0u6l7o/edit
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
jochen
I filed issue 75859 for the actual issue I found: an ActiveDOMObject overrides hasPendingActivity() and essentially always returns true. That integration with the V8 garbage collector marks such objects as referenced, but the reference is not visible to the developer from devtools (in that specific case, you can still detect the presence of the object from js, e.g. if you start a version change transaction it would block even though there's seemingly no database around that could block the transaction)
Timothy Hatcher
Chromium and V8 have left the building. Won't fix.