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 de69a605746b8ba491363105066310ffc51a1ff1..f912de5b8182a75b2d39596188c1923d2aa15145 100644 |
--- a/Source/devtools/front_end/timeline/TimelineUIUtils.js |
+++ b/Source/devtools/front_end/timeline/TimelineUIUtils.js |
@@ -738,7 +738,10 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve |
{ |
var fragment = document.createDocumentFragment(); |
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; |
@@ -888,7 +891,7 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve |
/** |
* @param {!WebInspector.TracingModel} model |
* @param {!WebInspector.TracingModel.Event} event |
- * @return {!Object} |
+ * @return {!{ aggregatedStats: !Object, hasChildren: boolean }} |
*/ |
WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, event) |
{ |
@@ -903,20 +906,23 @@ WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, eve |
return startTime - e.startTime; |
} |
var index = events.binaryIndexOf(event.startTime, eventComparator); |
+ var hasChildren = false; |
var aggregatedStats = {}; |
var endTime = event.endTime; |
- if (!endTime) |
- return aggregatedStats; |
- for (; index < events.length; index++) { |
- var nextEvent = events[index]; |
- if (nextEvent.startTime > endTime) |
- break; |
- if (!nextEvent.selfTime) |
- continue; |
- var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(nextEvent.name).category.name; |
- aggregatedStats[category] = (aggregatedStats[category] || 0) + nextEvent.selfTime; |
+ if (endTime) { |
+ for (var i = index; i < events.length; i++) { |
+ var nextEvent = events[i]; |
+ if (nextEvent.startTime >= endTime) |
+ break; |
+ if (!nextEvent.selfTime) |
+ continue; |
+ if (i > index) |
+ hasChildren = true; |
+ var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(nextEvent.name).category.name; |
+ aggregatedStats[category] = (aggregatedStats[category] || 0) + nextEvent.selfTime / 1000; |
+ } |
} |
- return aggregatedStats; |
+ return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; |
} |
/** |