Add detached DOM tree feature to the new embedder graph API.
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/252e8a1c2d629ef5300a3b4610e626b71e75973b commit 252e8a1c2d629ef5300a3b4610e626b71e75973b Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Feb 20 15:04:48 2018 [heap-profiler] Merge embedder nodes and V8 wrapper nodes. Each DOM node has the corresponding V8 wrapper object. This leads to apparent duplication in the heap snapshot and may confuse the users. This patch allows the embedder to specify V8 wrapper for each embedder node. In the heap snapshot the wrapper node will be merged into the embedder node. The resulting node will have the same properties as the embedder node. If the wrapper node name has a tag, then the tag is also added to the merged node. Bug: chromium:811925 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I2492f5b28163a78aee707b9ced1b09ac4b203e3f Reviewed-on: https://chromium-review.googlesource.com/919482 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#51394} [modify] https://crrev.com/252e8a1c2d629ef5300a3b4610e626b71e75973b/include/v8-profiler.h [modify] https://crrev.com/252e8a1c2d629ef5300a3b4610e626b71e75973b/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/252e8a1c2d629ef5300a3b4610e626b71e75973b/src/profiler/heap-snapshot-generator.h [modify] https://crrev.com/252e8a1c2d629ef5300a3b4610e626b71e75973b/test/cctest/test-heap-profiler.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4724d0ff81da3db0624b3ab80cdab3dfa78fffa6 commit 4724d0ff81da3db0624b3ab80cdab3dfa78fffa6 Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Feb 21 13:52:09 2018 [heap-profiler] Fix a bug in MergeNames function. Bug: chromium:811925 Change-Id: I0b2d9562fa77d6d198a689769705a2d5e977abf9 Reviewed-on: https://chromium-review.googlesource.com/928701 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51432} [modify] https://crrev.com/4724d0ff81da3db0624b3ab80cdab3dfa78fffa6/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/4724d0ff81da3db0624b3ab80cdab3dfa78fffa6/test/cctest/test-heap-profiler.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/5da78ea40b5f4c013d73f6d3f790f4de61c38404 commit 5da78ea40b5f4c013d73f6d3f790f4de61c38404 Author: Ulan Degenbaev <ulan@chromium.org> Date: Thu Feb 22 10:48:03 2018 [heap-profiler] Allow embedder to specify node name prefix. This patch adds EmbedderGraph::Node::NamePrefix method that will be used by Chrome for detached DOM nodes. Bug: chromium:811925 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I89d3b88a3b90ed85addb1d34f08dd15e0559aa9a Reviewed-on: https://chromium-review.googlesource.com/926362 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51464} [modify] https://crrev.com/5da78ea40b5f4c013d73f6d3f790f4de61c38404/include/v8-profiler.h [modify] https://crrev.com/5da78ea40b5f4c013d73f6d3f790f4de61c38404/src/profiler/heap-snapshot-generator.cc [modify] https://crrev.com/5da78ea40b5f4c013d73f6d3f790f4de61c38404/test/cctest/test-heap-profiler.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d690c63866704bb7896b89ddb5b6b3452baf28c6 commit d690c63866704bb7896b89ddb5b6b3452baf28c6 Author: Ulan Degenbaev <ulan@chromium.org> Date: Mon Feb 26 15:08:01 2018 [heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot. Each DOM node has a corresponding JS wrapper node. In heap snapshot they appear as duplicates. Example retaining path with duplicates: - [1] in InternalNode @2041178784 - [1] in HTMLDivElement @2041079168 // DOM node - [3] in HTMLDivElement @2231 // JS wrapper - retainer in Window / @2105 The heap snapshot generator now can merge an embedder node with a node returned by EmbedderGraph::Node::WrapperNode() function. This patch implements the WrapperNode() function for each DOM node. Bug: chromium:811925 Change-Id: I9ea6bc7e45f8ab3d54828b9ac61f7230d04d8019 Reviewed-on: https://chromium-review.googlesource.com/928503 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#539132} [add] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [add] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/d690c63866704bb7896b89ddb5b6b3452baf28c6/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1d26a7a807db1458bf533531e409cc05005cf4f8 commit 1d26a7a807db1458bf533531e409cc05005cf4f8 Author: Henrik Boström <hbos@chromium.org> Date: Tue Feb 27 11:49:04 2018 Revert "[heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot." This reverts commit d690c63866704bb7896b89ddb5b6b3452baf28c6. Reason for revert: Suspect for Linux MSAN bot consistent failures, first one being: https://uberchromegw.corp.google.com/i/chromium.webkit/builders/WebKit%20Linux%20Trusty%20MSAN/builds/6338 Original change's description: > [heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot. > > Each DOM node has a corresponding JS wrapper node. In heap snapshot > they appear as duplicates. > > Example retaining path with duplicates: > - [1] in InternalNode @2041178784 > - [1] in HTMLDivElement @2041079168 // DOM node > - [3] in HTMLDivElement @2231 // JS wrapper > - retainer in Window / @2105 > > The heap snapshot generator now can merge an embedder node with a node > returned by EmbedderGraph::Node::WrapperNode() function. > > This patch implements the WrapperNode() function for each DOM node. > > Bug: chromium:811925 > Change-Id: I9ea6bc7e45f8ab3d54828b9ac61f7230d04d8019 > Reviewed-on: https://chromium-review.googlesource.com/928503 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#539132} TBR=ulan@chromium.org,haraken@chromium.org,mlippautz@chromium.org Change-Id: If05b23d13bb68f0dc870cc047b399ed43c4472f6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:811925 Reviewed-on: https://chromium-review.googlesource.com/939341 Reviewed-by: Henrik Boström <hbos@chromium.org> Commit-Queue: Henrik Boström <hbos@chromium.org> Cr-Commit-Position: refs/heads/master@{#539419} [delete] https://crrev.com/0ca23dc56b2f90e444b04d8fc72dc9f81835088b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [delete] https://crrev.com/0ca23dc56b2f90e444b04d8fc72dc9f81835088b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/1d26a7a807db1458bf533531e409cc05005cf4f8/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/92aa9f819cff7ca85ccef53c4b8a05b93110739b commit 92aa9f819cff7ca85ccef53c4b8a05b93110739b Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Mar 07 10:33:28 2018 Reland "[heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot." This relands commit d690c63866704bb7896b89ddb5b6b3452baf28c6. Original change's description: > [heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot. > > Each DOM node has a corresponding JS wrapper node. In heap snapshot > they appear as duplicates. > > Example retaining path with duplicates: > - [1] in InternalNode @2041178784 > - [1] in HTMLDivElement @2041079168 // DOM node > - [3] in HTMLDivElement @2231// JS wrapper > - retainer in Window / @2105 > > The heap snapshot generator now can merge an embedder node with a node > returned by EmbedderGraph::Node::WrapperNode() function. > > This patch implements the WrapperNode() function for each DOM node. > > Bug: chromium:811925 > Change-Id: I9ea6bc7e45f8ab3d54828b9ac61f7230d04d8019 > Reviewed-on: https://chromium-review.googlesource.com/928503 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#539132} Change-Id: I4223d1369874ad34dfff1a74d5725360c360300c Reviewed-on: https://chromium-review.googlesource.com/951252 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#541403} [add] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [add] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/92aa9f819cff7ca85ccef53c4b8a05b93110739b/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/786ed1e08978614b384fa5129bd55c9215553cdf commit 786ed1e08978614b384fa5129bd55c9215553cdf Author: Shuotao Gao <stgao@chromium.org> Date: Wed Mar 07 21:26:26 2018 Revert "Reland "[heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot."" This reverts commit 92aa9f819cff7ca85ccef53c4b8a05b93110739b. Reason for revert: inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js is failing since https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/6477 until https://ci.chromium.org/buildbot/chromium.webkit/WebKit%20Linux%20Trusty%20MSAN/6482 when this revert is created. Original change's description: > Reland "[heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot." > > This relands commit d690c63866704bb7896b89ddb5b6b3452baf28c6. > > Original change's description: > > [heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot. > > > > Each DOM node has a corresponding JS wrapper node. In heap snapshot > > they appear as duplicates. > > > > Example retaining path with duplicates: > > - [1] in InternalNode @2041178784 > > - [1] in HTMLDivElement @2041079168 // DOM node > > - [3] in HTMLDivElement @2231// JS wrapper > > - retainer in Window / @2105 > > > > The heap snapshot generator now can merge an embedder node with a node > > returned by EmbedderGraph::Node::WrapperNode() function. > > > > This patch implements the WrapperNode() function for each DOM node. > > > > Bug: chromium:811925 > > Change-Id: I9ea6bc7e45f8ab3d54828b9ac61f7230d04d8019 > > Reviewed-on: https://chromium-review.googlesource.com/928503 > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#539132} > > > Change-Id: I4223d1369874ad34dfff1a74d5725360c360300c > Reviewed-on: https://chromium-review.googlesource.com/951252 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Kentaro Hara <haraken@chromium.org> > Cr-Commit-Position: refs/heads/master@{#541403} TBR=ulan@chromium.org,haraken@chromium.org,hbos@chromium.org Change-Id: Ic99975f4052831b7a799c882a2227e1a64d04f97 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/953368 Reviewed-by: Shuotao Gao <stgao@chromium.org> Commit-Queue: Shuotao Gao <stgao@chromium.org> Cr-Commit-Position: refs/heads/master@{#541585} [delete] https://crrev.com/251e255f303f954692cd7e2134ea54b37a9774ff/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [delete] https://crrev.com/251e255f303f954692cd7e2134ea54b37a9774ff/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/786ed1e08978614b384fa5129bd55c9215553cdf/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7 commit a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7 Author: Ulan Degenbaev <ulan@chromium.org> Date: Thu Mar 08 12:13:49 2018 Reland^2 "[heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot." This relands commit d690c63866704bb7896b89ddb5b6b3452baf28c6. This time the new test is marked as timeout in MSAN expectation. Original change's description: > [heap-profiler] Merge DOM node and its JS wrapper node in heap snapshot. > > Each DOM node has a corresponding JS wrapper node. In heap snapshot > they appear as duplicates. > > Example retaining path with duplicates: > - [1] in InternalNode @2041178784 > - [1] in HTMLDivElement @2041079168 // DOM node > - [3] in HTMLDivElement @2231// JS wrapper > - retainer in Window / @2105 > > The heap snapshot generator now can merge an embedder node with a node > returned by EmbedderGraph::Node::WrapperNode() function. > > This patch implements the WrapperNode() function for each DOM node. > > Bug: chromium:811925 > Change-Id: I9ea6bc7e45f8ab3d54828b9ac61f7230d04d8019 > Reviewed-on: https://chromium-review.googlesource.com/928503 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#539132} Change-Id: I0523477d562c68512a2a92902022826df8a32820 Reviewed-on: https://chromium-review.googlesource.com/955243 Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#541775} [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/MSANExpectations [add] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [add] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes.js [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener-expected.txt [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.js [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers-expected.txt [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-multiple-retainers.js [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/a49090b7b6c4f245d5b17dbc64a97dd03c5dcef7/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ee7b1d65ba78fffa1239da99ae8a035186f59510 commit ee7b1d65ba78fffa1239da99ae8a035186f59510 Author: Ulan Degenbaev <ulan@chromium.org> Date: Thu Mar 15 16:10:22 2018 [bindings] Show detached DOM nodes in DevTools heap snapshot. The patch uses Node::isConnected() and Document::IsContextDestroyed() predicates to compute whether a Node is detached or not. This information is then propagated to all ScriptWrappables. DevTools shows detached nodes with the "Detached" prefix. For example, "Detached HTMLDocument" or "Detached Window". Bug: 811925 Change-Id: Ib7987f578cc513b6bdfcfe084c885cbff84a4dba Reviewed-on: https://chromium-review.googlesource.com/961401 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#543382} [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/MSANExpectations [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-merged-nodes-expected.txt [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree-expected.txt [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.js [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-detached-iframe-expected.txt [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-detached-iframe.js [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-no-detached-iframe-expected.txt [add] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/LayoutTests/inspector-protocol/heap-profiler/heap-snapshot-with-no-detached-iframe.js [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.cpp [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/Source/bindings/core/v8/V8EmbedderGraphBuilder.h [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/Source/core/dom/Document.cpp [modify] https://crrev.com/ee7b1d65ba78fffa1239da99ae8a035186f59510/third_party/WebKit/Source/core/dom/Document.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3fbb23212abb4bd80c32c32fb1576b245bd06525 commit 3fbb23212abb4bd80c32c32fb1576b245bd06525 Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri Mar 16 16:15:35 2018 Implement NameInHeapSnapshot for all TraceWrapperBase objects. Currently some DOM objects in DevTools heap snapshot show up as "UnknownNode" because the corresponding TraceWrapperBase objects do not implement the NameInHeapSnapshot method. This patch fixes it. The patch also makes NameInHeapSnapshot pure. Bug: 811925 Cq-Include-Trybots: luci.chromium.try:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I495a75c5ee0c9f765a6d94daed62cf34c345d124 Reviewed-on: https://chromium-review.googlesource.com/966423 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#543717} [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableMarkingVisitorTest.cpp [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/bindings/core/v8/V8NodeFilterCondition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/css/StyleEngine.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/css/StyleSheetCollection.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/DocumentParser.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/ElementShadow.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/ElementShadowV0.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/FrameRequestCallbackCollection.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/MutationObserver.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/MutationObserverRegistration.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/ScriptedAnimationController.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/dom/ScriptedIdleTaskController.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/html/custom/CustomElementDefinition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/html/custom/CustomElementReactionStack.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/html/imports/HTMLImportTreeRoot.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/html/imports/HTMLImportsController.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/intersection_observer/ElementIntersectionObserverData.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/intersection_observer/IntersectionObserverController.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/intersection_observer/IntersectionObserverDelegate.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/layout/custom/CSSLayoutDefinition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/loader/modulescript/ModuleTreeLinkerRegistry.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/HTMLParserScriptRunner.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/Modulator.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/ModuleMap.cpp [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/ModuleMap.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/ModuleScript.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/PendingScript.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/ScriptLoader.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/script/ScriptRunner.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/core/xmlhttprequest/XMLHttpRequest.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/animationworklet/Animator.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/animationworklet/AnimatorDefinition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/csspaint/CSSPaintDefinition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/filesystem/LocalFileSystem.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/geolocation/GeoNotifier.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/geolocation/GeolocationWatchers.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/geolocation/NavigatorGeolocation.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/indexeddb/IndexedDBClient.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/locks/LockManager.cpp [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/locks/NavigatorLocks.cpp [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/remoteplayback/AvailabilityCallbackWrapper.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/serviceworkers/ServiceWorkerContainerClient.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/webaudio/AudioWorkletProcessorDefinition.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/webgl/WebGLContextGroup.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.cpp [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/webgl/WebGLFramebuffer.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/modules/xr/XRFrameRequestCallbackCollection.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/platform/bindings/CallbackFunctionBase.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/platform/bindings/CallbackInterfaceBase.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/platform/bindings/TraceWrapperBase.h [modify] https://crrev.com/3fbb23212abb4bd80c32c32fb1576b245bd06525/third_party/WebKit/Source/platform/bindings/TraceWrapperV8String.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/aa8286d1241942e34ac24dab4be37d3c5d51caaa commit aa8286d1241942e34ac24dab4be37d3c5d51caaa Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Mar 20 10:57:31 2018 [heap-profiler] Fix highlighting of detached DOM tree nodes. The _markDetachedDOMTreeNodes in the worker sets the detachedDOMTreeNode flag if the node is native and its name starts with "Detached " prefix. This patch also ensures that '.highlight' and '.detached-dom-tree-node' CSS styles are not set both at the same time. Bug: 811925 Change-Id: Iee4ee0647abb19a36c1be2f078b4c2915d67cba5 Reviewed-on: https://chromium-review.googlesource.com/964761 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#544327} [modify] https://crrev.com/aa8286d1241942e34ac24dab4be37d3c5d51caaa/third_party/WebKit/Source/devtools/front_end/heap_snapshot_worker/HeapSnapshot.js [modify] https://crrev.com/aa8286d1241942e34ac24dab4be37d3c5d51caaa/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotGridNodes.js
Comment 1 by bugdroid1@chromium.org
, Feb 20 2018