| Index: third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js
|
| index 6eea7504619b5b53ea215898a41eeced4850651f..1e4dafcc2d164f38658bfa78154a84cc71497363 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/CPUProfileDataModel.js
|
| @@ -120,12 +120,30 @@ WebInspector.CPUProfileDataModel.prototype = {
|
| return !!node.callFrame.url && node.callFrame.url.startsWith("native ");
|
| return !!node.url && node.url.startsWith("native ");
|
| }
|
| + /**
|
| + * @param {!Array<!ProfilerAgent.ProfileNode>} nodes
|
| + */
|
| + function buildChildrenFromParents(nodes)
|
| + {
|
| + if (nodes[0].children)
|
| + return;
|
| + nodes[0].children = [];
|
| + for (var i = 1; i < nodes.length; ++i) {
|
| + var node = nodes[i];
|
| + var parentNode = nodeByIdMap.get(node.parent);
|
| + if (parentNode.children)
|
| + parentNode.children.push(node.id);
|
| + else
|
| + parentNode.children = [node.id];
|
| + }
|
| + }
|
| /** @type {!Map<number, !ProfilerAgent.ProfileNode>} */
|
| var nodeByIdMap = new Map();
|
| for (var i = 0; i < nodes.length; ++i) {
|
| var node = nodes[i];
|
| nodeByIdMap.set(node.id, node);
|
| }
|
| + buildChildrenFromParents(nodes);
|
| this.totalHitCount = nodes.reduce((acc, node) => acc + node.hitCount, 0);
|
| var sampleTime = (this.profileEndTime - this.profileStartTime) / this.totalHitCount;
|
| var keepNatives = !!WebInspector.moduleSetting("showNativeFunctionsInJSProfile").get();
|
|
|