| Index: Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| diff --git a/Source/devtools/front_end/timeline/TimelineUIUtils.js b/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| index 7c80c9b6e04e367a845eeab953c4e26a21142cbc..2a34fddac5bca24c132a41cde53e10f9340d7895 100644
|
| --- a/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| +++ b/Source/devtools/front_end/timeline/TimelineUIUtils.js
|
| @@ -1609,163 +1609,6 @@ WebInspector.TimelineUIUtils.eventDispatchDesciptors = function()
|
| }
|
|
|
| /**
|
| - * @param {!Array<!WebInspector.TracingModel.Event>} events
|
| - * @param {number} startTime
|
| - * @param {number} endTime
|
| - * @param {!Array<!WebInspector.TraceEventFilter>} filters
|
| - * @param {function(!WebInspector.TracingModel.Event):string} eventIdCallback
|
| - * @return {!WebInspector.TimelineModel.ProfileTreeNode}
|
| - */
|
| -WebInspector.TimelineUIUtils.buildTopDownTree = function(events, startTime, endTime, filters, eventIdCallback)
|
| -{
|
| - // Temporarily deposit a big enough value that exceeds the max recording time.
|
| - var /** @const */ initialTime = 1e7;
|
| - var root = new WebInspector.TimelineModel.ProfileTreeNode();
|
| - root.totalTime = initialTime;
|
| - root.selfTime = initialTime;
|
| - root.name = WebInspector.UIString("Top-Down Chart");
|
| - var parent = root;
|
| -
|
| - /**
|
| - * @param {!WebInspector.TracingModel.Event} e
|
| - * @return {boolean}
|
| - */
|
| - function filter(e)
|
| - {
|
| - if (!e.endTime && e.phase !== WebInspector.TracingModel.Phase.Instant)
|
| - return false;
|
| - if (e.endTime <= startTime || e.startTime >= endTime)
|
| - return false;
|
| - if (WebInspector.TracingModel.isAsyncPhase(e.phase))
|
| - return false;
|
| - for (var filter of filters) {
|
| - if (!filter.accept(e))
|
| - return false;
|
| - }
|
| - return true;
|
| - }
|
| -
|
| - /**
|
| - * @param {!WebInspector.TracingModel.Event} e
|
| - */
|
| - function onStartEvent(e)
|
| - {
|
| - if (!filter(e))
|
| - return;
|
| - var time = Math.min(endTime, e.endTime) - Math.max(startTime, e.startTime);
|
| - var id = eventIdCallback(e);
|
| - if (!parent.children)
|
| - parent.children = /** @type {!Map<string,!WebInspector.TimelineModel.ProfileTreeNode>} */ (new Map());
|
| - var node = parent.children.get(id);
|
| - if (node) {
|
| - node.selfTime += time;
|
| - node.totalTime += time;
|
| - } else {
|
| - node = new WebInspector.TimelineModel.ProfileTreeNode();
|
| - node.totalTime = time;
|
| - node.selfTime = time;
|
| - node.parent = parent;
|
| - node.name = eventName(e);
|
| - node.id = id;
|
| - node.event = e;
|
| - parent.children.set(id, node);
|
| - }
|
| - parent.selfTime -= time;
|
| - if (parent.selfTime < 0) {
|
| - console.log("Error: Negative self of " + parent.selfTime, e);
|
| - parent.selfTime = 0;
|
| - }
|
| - parent = node;
|
| - }
|
| -
|
| - /**
|
| - * @param {!WebInspector.TracingModel.Event} e
|
| - */
|
| - function onEndEvent(e)
|
| - {
|
| - if (!filter(e))
|
| - return;
|
| - parent = parent.parent;
|
| - }
|
| -
|
| - /**
|
| - * @param {!WebInspector.TracingModel.Event} e
|
| - * @return {string}
|
| - */
|
| - function eventName(e)
|
| - {
|
| - if (e.name === "JSFrame")
|
| - return WebInspector.beautifyFunctionName(e.args.data.functionName);
|
| - if (e.name === "EventDispatch")
|
| - return WebInspector.UIString("Event%s", e.args.data ? " (" + e.args.data.type + ")" : "");
|
| - return e.name;
|
| - }
|
| -
|
| - WebInspector.TimelineModel.forEachEvent(events, onStartEvent, onEndEvent);
|
| - root.totalTime -= root.selfTime;
|
| - root.selfTime = 0;
|
| - return root;
|
| -}
|
| -
|
| -/**
|
| - * @param {!WebInspector.TimelineModel.ProfileTreeNode} topDownTree
|
| - * @param {function(!WebInspector.TimelineModel.ProfileTreeNode):?WebInspector.TimelineModel.ProfileTreeNode=} groupingCallback
|
| - * @return {!WebInspector.TimelineModel.ProfileTreeNode}
|
| - */
|
| -WebInspector.TimelineUIUtils.buildBottomUpTree = function(topDownTree, groupingCallback)
|
| -{
|
| - var buRoot = new WebInspector.TimelineModel.ProfileTreeNode();
|
| - buRoot.totalTime = 0;
|
| - buRoot.name = WebInspector.UIString("Bottom-Up Chart");
|
| - /** @type {!Map<string,!WebInspector.TimelineModel.ProfileTreeNode>} */
|
| - buRoot.children = new Map();
|
| - processNode(topDownTree);
|
| -
|
| - /**
|
| - * @param {!WebInspector.TimelineModel.ProfileTreeNode} tdNode
|
| - */
|
| - function processNode(tdNode)
|
| - {
|
| - if (tdNode.selfTime > 0) {
|
| - var buParent = groupingCallback && groupingCallback(tdNode) || buRoot;
|
| - appendNode(tdNode, buParent);
|
| - }
|
| - if (tdNode.children)
|
| - tdNode.children.forEach(processNode);
|
| - }
|
| -
|
| - /**
|
| - * @param {!WebInspector.TimelineModel.ProfileTreeNode} tdNode
|
| - * @param {!WebInspector.TimelineModel.ProfileTreeNode} buParent
|
| - */
|
| - function appendNode(tdNode, buParent)
|
| - {
|
| - var time = tdNode.selfTime;
|
| - buParent.totalTime += time;
|
| - while (tdNode.parent) {
|
| - if (!buParent.children)
|
| - buParent.children = /** @type {!Map<string,!WebInspector.TimelineModel.ProfileTreeNode>} */ (new Map());
|
| - var id = tdNode.id;
|
| - var buNode = buParent.children.get(id);
|
| - if (!buNode) {
|
| - buNode = new WebInspector.TimelineModel.ProfileTreeNode();
|
| - buNode.totalTime = time;
|
| - buNode.name = tdNode.name;
|
| - buNode.event = tdNode.event;
|
| - buNode.id = id;
|
| - buParent.children.set(id, buNode);
|
| - } else {
|
| - buNode.totalTime += time;
|
| - }
|
| - tdNode = tdNode.parent;
|
| - buParent = buNode;
|
| - }
|
| - }
|
| -
|
| - return buRoot;
|
| -}
|
| -
|
| -/**
|
| * @constructor
|
| * @extends {WebInspector.Object}
|
| * @param {string} name
|
|
|