RESOLVED FIXED 156419
Web Inspector: Should be able to expand Objects in Heap Allocations View to see exactly what it retains
https://bugs.webkit.org/show_bug.cgi?id=156419
Summary Web Inspector: Should be able to expand Objects in Heap Allocations View to s...
Joseph Pecoraro
Reported 2016-04-08 14:28:07 PDT
* SUMMARY Should be able to expand Objects in Heap Allocations View to see exactly what it retains The Retained Size of most objects can be made more useful when you can see exactly what objects the original object retains (and dominates).
Attachments
[PATCH] Proposed Fix (33.29 KB, patch)
2016-04-11 18:52 PDT, Joseph Pecoraro
timothy: review+
[IMAGE] Expand Function - Shows FunctionExecutable (234.50 KB, image/png)
2016-04-11 18:53 PDT, Joseph Pecoraro
no flags
[IMAGE] Expand Object - Shows properties and previews (254.56 KB, image/png)
2016-04-11 18:54 PDT, Joseph Pecoraro
no flags
Radar WebKit Bug Importer
Comment 1 2016-04-08 14:28:31 PDT
Joseph Pecoraro
Comment 2 2016-04-11 18:52:22 PDT
Created attachment 276194 [details] [PATCH] Proposed Fix
Joseph Pecoraro
Comment 3 2016-04-11 18:53:39 PDT
Created attachment 276195 [details] [IMAGE] Expand Function - Shows FunctionExecutable
Joseph Pecoraro
Comment 4 2016-04-11 18:54:07 PDT
Created attachment 276196 [details] [IMAGE] Expand Object - Shows properties and previews
Timothy Hatcher
Comment 5 2016-04-12 09:46:33 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review > Source/WebInspectorUI/UserInterface/Models/HeapSnapshotRootPath.js:57 > + case WebInspector.HeapSnapshotEdgeProxy.EdgeType.Internal: > + return emDash; This looks funny in the screenshots and could be confusing. I'd either show nothing (drop the "—:") or have it say "(internal)" or something.
Timothy Hatcher
Comment 6 2016-04-12 09:48:35 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review >> Source/WebInspectorUI/UserInterface/Models/HeapSnapshotRootPath.js:57 >> + return emDash; > > This looks funny in the screenshots and could be confusing. I'd either show nothing (drop the "—:") or have it say "(internal)" or something. It might be best to show nothing, since these internal things will usually say "Internal Object" in red at the end. Or drop that and move "(internal):" to the front.
Timothy Hatcher
Comment 7 2016-04-12 09:52:24 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review > Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:135 > + nameElement.textContent = edgeText + ": " + this._node.className + " "; We now show this._node.className twice if there is a preview (see JSGlobalLexicalEnvironment). Should we drop the className from the preview in this case? > Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:200 > + for (let i = 0; i < children.length; ++i) { Back to classic for loops for performance? > Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:214 > + for (let i = 0; i < instances.length; ++i) Ditto?
Timothy Hatcher
Comment 8 2016-04-12 09:55:23 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review > Source/WebInspectorUI/UserInterface/Views/HeapSnapshotClassDataGridNode.js:66 > + iconElement.classList.add("icon", WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName(className)); Why do some internal types show [ ? ] for the icon while others show [ N ]? I think they should all be [ N ] unless there is a reason not distinguish them.
Joseph Pecoraro
Comment 9 2016-04-12 11:18:35 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review >> Source/WebInspectorUI/UserInterface/Views/HeapSnapshotClassDataGridNode.js:66 >> + iconElement.classList.add("icon", WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName(className)); > > Why do some internal types show [ ? ] for the icon while others show [ N ]? I think they should all be [ N ] unless there is a reason not distinguish them. All internal types (JSC objects that are note tied to a particular global object) show [?]. There are a few JSC objects that show [N] that maybe you think should be [?]. Such as an JSLexicalEnvironment, InjectedScriptHost? >> Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:135 >> + nameElement.textContent = edgeText + ": " + this._node.className + " "; > > We now show this._node.className twice if there is a preview (see JSGlobalLexicalEnvironment). Should we drop the className from the preview in this case? Currently our previews of lexical environments is poor. I'd rather we just improve them, or failing that eliminate them. >> Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:200 >> + for (let i = 0; i < children.length; ++i) { > > Back to classic for loops for performance? This one is needed because we use `i` in the loop. >> Source/WebInspectorUI/UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:214 >> + for (let i = 0; i < instances.length; ++i) > > Ditto? This one is needed because we use `i` in the loop.
Timothy Hatcher
Comment 10 2016-04-12 11:41:54 PDT
Comment on attachment 276194 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=276194&action=review >>> Source/WebInspectorUI/UserInterface/Views/HeapSnapshotClassDataGridNode.js:66 >>> + iconElement.classList.add("icon", WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName(className)); >> >> Why do some internal types show [ ? ] for the icon while others show [ N ]? I think they should all be [ N ] unless there is a reason not distinguish them. > > All internal types (JSC objects that are note tied to a particular global object) show [?]. > There are a few JSC objects that show [N] that maybe you think should be [?]. Such as an JSLexicalEnvironment, InjectedScriptHost? I'm not sure having two icons is helpful. I think [ N ] is a better choice.
Joseph Pecoraro
Comment 11 2016-04-12 12:36:31 PDT
<http://trac.webkit.org/changeset/199379> I went with just dropping any edge name for Internal edges.
Joseph Pecoraro
Comment 12 2016-04-12 13:21:24 PDT
> > There are a few JSC objects that show [N] that maybe you think should be [?]. Such as an JSLexicalEnvironment, InjectedScriptHost? > > I'm not sure having two icons is helpful. I think [ N ] is a better choice. <https://webkit.org/b/156513> Web Inspector: Show the normal Native icon for all Internal objects in Heap Snapshots
Note You need to log in before you can comment on or make changes to this bug.