| Index: third_party/WebKit/LayoutTests/inspector-protocol/resources/node-tracker.js
|
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/resources/node-tracker.js b/third_party/WebKit/LayoutTests/inspector-protocol/resources/node-tracker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..07a04fa2b1ba7eb005c005934da9ff6d27a97852
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/resources/node-tracker.js
|
| @@ -0,0 +1,28 @@
|
| +(class NodeTracker {
|
| + constructor(dp) {
|
| + this._nodes = new Map();
|
| + dp.DOM.onSetChildNodes(message => message.params.nodes.forEach(node => this._addNode(node)));
|
| + }
|
| +
|
| + addDocumentNode(documentNode) {
|
| + this._addNode(documentNode);
|
| + }
|
| +
|
| + _addNode(node) {
|
| + this._nodes.set(node.nodeId, node);
|
| + if (node.children)
|
| + node.children.forEach(node => this._addNode(node));
|
| + }
|
| +
|
| + nodeForId(nodeId) {
|
| + return this._nodes.get(nodeId) || null;
|
| + }
|
| +
|
| + nodes() {
|
| + return Array.from(this._nodes.values());
|
| + }
|
| +
|
| + nodeIds() {
|
| + return Array.from(this._nodes.keys());
|
| + }
|
| +})
|
|
|