Chromium Code Reviews| 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 924dd5475db37272c07d4f872a221b24bcf5106b..60ca003dcb55d68e2da35e45c4cabb7be357a23a 100644 |
| --- a/Source/devtools/front_end/timeline/TimelineUIUtils.js |
| +++ b/Source/devtools/front_end/timeline/TimelineUIUtils.js |
| @@ -737,6 +737,9 @@ WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin |
| WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(event, model, linkifier, imagePreviewElement, relatedNode, loadedFromFile, bindings, target) |
| { |
| var fragment = document.createDocumentFragment(); |
| + var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model, event); |
| + fragment.appendChild(WebInspector.TimelineUIUtils.generatePieChart(stats)); |
| + |
| var recordTypes = WebInspector.TimelineModel.RecordType; |
| // The messages may vary per event.name; |
| @@ -883,6 +886,40 @@ WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve |
| } |
| /** |
| + * @param {!WebInspector.TracingModel} model |
| + * @param {!WebInspector.TracingModel.Event} event |
| + * @return {!Object} |
| + */ |
| +WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, event) |
| +{ |
| + var events = model.inspectedTargetEvents(); |
| + /** |
| + * @param {number} startTime |
| + * @param {!WebInspector.TracingModel.Event} e |
| + * @return {number} |
| + */ |
| + function eventComparator(startTime, e) |
| + { |
| + return startTime - e.startTime; |
| + } |
| + var index = events.binaryIndexOf(event.startTime, eventComparator); |
| + var aggregatedStats = {}; |
| + var endTime = event.endTime; |
| + if (!endTime) |
| + return aggregatedStats; |
| + for (;index < events.length; index++) { |
|
alph
2014/05/28 18:43:14
missing space
yurys
2014/05/28 19:18:41
Done.
|
| + 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; |
| + } |
| + return aggregatedStats; |
| +} |
| + |
| +/** |
| * @param {!Array.<number>} quad |
| * @return {number} |
| */ |