Commit a6b8cc40 authored by yurys@chromium.org's avatar yurys@chromium.org

Correctly show self time in trace event details pie chart

BUG=361045
R=alph@chromium.org

Review URL: https://codereview.chromium.org/306803003

git-svn-id: svn://svn.chromium.org/blink/trunk@175110 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 756211dc
...@@ -738,7 +738,10 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve ...@@ -738,7 +738,10 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
{ {
var fragment = document.createDocumentFragment(); var fragment = document.createDocumentFragment();
var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model, event); var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model, event);
fragment.appendChild(WebInspector.TimelineUIUtils.generatePieChart(stats)); var pieChart = stats.hasChildren ?
WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats, WebInspector.TimelineUIUtils.styleForTimelineEvent(event.name).category, event.selfTime) :
WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats);
fragment.appendChild(pieChart);
var recordTypes = WebInspector.TimelineModel.RecordType; var recordTypes = WebInspector.TimelineModel.RecordType;
...@@ -888,7 +891,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve ...@@ -888,7 +891,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
/** /**
* @param {!WebInspector.TracingModel} model * @param {!WebInspector.TracingModel} model
* @param {!WebInspector.TracingModel.Event} event * @param {!WebInspector.TracingModel.Event} event
* @return {!Object} * @return {!{ aggregatedStats: !Object, hasChildren: boolean }}
*/ */
WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, event) WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, event)
{ {
...@@ -903,20 +906,23 @@ WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, eve ...@@ -903,20 +906,23 @@ WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, eve
return startTime - e.startTime; return startTime - e.startTime;
} }
var index = events.binaryIndexOf(event.startTime, eventComparator); var index = events.binaryIndexOf(event.startTime, eventComparator);
var hasChildren = false;
var aggregatedStats = {}; var aggregatedStats = {};
var endTime = event.endTime; var endTime = event.endTime;
if (!endTime) if (endTime) {
return aggregatedStats; for (var i = index; i < events.length; i++) {
for (; index < events.length; index++) { var nextEvent = events[i];
var nextEvent = events[index]; if (nextEvent.startTime >= endTime)
if (nextEvent.startTime > endTime) break;
break; if (!nextEvent.selfTime)
if (!nextEvent.selfTime) continue;
continue; if (i > index)
var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(nextEvent.name).category.name; hasChildren = true;
aggregatedStats[category] = (aggregatedStats[category] || 0) + nextEvent.selfTime; var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(nextEvent.name).category.name;
aggregatedStats[category] = (aggregatedStats[category] || 0) + nextEvent.selfTime / 1000;
}
} }
return aggregatedStats; return { aggregatedStats: aggregatedStats, hasChildren: hasChildren };
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment