Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 731 * @param {?WebInspector.DOMNode} relatedNode | 731 * @param {?WebInspector.DOMNode} relatedNode |
| 732 * @param {boolean} loadedFromFile | 732 * @param {boolean} loadedFromFile |
| 733 * @param {?WebInspector.TimelineTraceEventBindings} bindings | 733 * @param {?WebInspector.TimelineTraceEventBindings} bindings |
| 734 * @param {!WebInspector.Target} target | 734 * @param {!WebInspector.Target} target |
| 735 * @return {!DocumentFragment} | 735 * @return {!DocumentFragment} |
| 736 */ | 736 */ |
| 737 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve nt, model, linkifier, imagePreviewElement, relatedNode, loadedFromFile, bindings , target) | 737 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve nt, model, linkifier, imagePreviewElement, relatedNode, loadedFromFile, bindings , target) |
| 738 { | 738 { |
| 739 var fragment = document.createDocumentFragment(); | 739 var fragment = document.createDocumentFragment(); |
| 740 var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model , event); | 740 var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model , event); |
| 741 fragment.appendChild(WebInspector.TimelineUIUtils.generatePieChart(stats)); | 741 if (stats.hasChildren) |
| 742 fragment.appendChild(WebInspector.TimelineUIUtils.generatePieChart(stats .aggregatedStats, WebInspector.TimelineUIUtils.styleForTimelineEvent(event.name) .category, event.selfTime)); | |
|
alph
2014/05/29 10:11:16
I'd move the fragment.appendChild out of the if.
yurys
2014/05/29 12:40:38
Done.
| |
| 743 else | |
| 744 fragment.appendChild(WebInspector.TimelineUIUtils.generatePieChart(stats .aggregatedStats)); | |
| 742 | 745 |
| 743 var recordTypes = WebInspector.TimelineModel.RecordType; | 746 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 744 | 747 |
| 745 // The messages may vary per event.name; | 748 // The messages may vary per event.name; |
| 746 var callSiteStackTraceLabel; | 749 var callSiteStackTraceLabel; |
| 747 var callStackLabel; | 750 var callStackLabel; |
| 748 var relatedNodeLabel; | 751 var relatedNodeLabel; |
| 749 | 752 |
| 750 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li nkifier, true); | 753 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li nkifier, true); |
| 751 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime / 1000, true)); | 754 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime / 1000, true)); |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 881 div.textContent = warning; | 884 div.textContent = warning; |
| 882 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); | 885 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); |
| 883 } | 886 } |
| 884 fragment.appendChild(contentHelper.element); | 887 fragment.appendChild(contentHelper.element); |
| 885 return fragment; | 888 return fragment; |
| 886 } | 889 } |
| 887 | 890 |
| 888 /** | 891 /** |
| 889 * @param {!WebInspector.TracingModel} model | 892 * @param {!WebInspector.TracingModel} model |
| 890 * @param {!WebInspector.TracingModel.Event} event | 893 * @param {!WebInspector.TracingModel.Event} event |
| 891 * @return {!Object} | 894 * @return {!{ aggregatedStats: !Object, hasChildren: boolean }} |
| 892 */ | 895 */ |
| 893 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, eve nt) | 896 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(model, eve nt) |
| 894 { | 897 { |
| 895 var events = model.inspectedTargetEvents(); | 898 var events = model.inspectedTargetEvents(); |
| 896 /** | 899 /** |
| 897 * @param {number} startTime | 900 * @param {number} startTime |
| 898 * @param {!WebInspector.TracingModel.Event} e | 901 * @param {!WebInspector.TracingModel.Event} e |
| 899 * @return {number} | 902 * @return {number} |
| 900 */ | 903 */ |
| 901 function eventComparator(startTime, e) | 904 function eventComparator(startTime, e) |
| 902 { | 905 { |
| 903 return startTime - e.startTime; | 906 return startTime - e.startTime; |
| 904 } | 907 } |
| 905 var index = events.binaryIndexOf(event.startTime, eventComparator); | 908 var index = events.binaryIndexOf(event.startTime, eventComparator); |
|
alph
2014/05/29 12:59:28
nit: you can move it inside "if (endTime)"
| |
| 909 var hasChildren = false; | |
| 906 var aggregatedStats = {}; | 910 var aggregatedStats = {}; |
| 907 var endTime = event.endTime; | 911 var endTime = event.endTime; |
| 908 if (!endTime) | 912 if (endTime) { |
| 909 return aggregatedStats; | 913 for (var i = index; i < events.length; i++) { |
| 910 for (; index < events.length; index++) { | 914 var nextEvent = events[i]; |
| 911 var nextEvent = events[index]; | 915 if (nextEvent.startTime > endTime) |
|
alph
2014/05/29 10:11:16
nit: >=
or even better compare to nextEvent.endTim
yurys
2014/05/29 12:40:38
Done.
| |
| 912 if (nextEvent.startTime > endTime) | 916 break; |
| 913 break; | 917 if (!nextEvent.selfTime) |
| 914 if (!nextEvent.selfTime) | 918 continue; |
| 915 continue; | 919 if (i > index) |
|
alph
2014/05/29 10:11:16
you can hoist the check out of the loop
yurys
2014/05/29 12:40:38
This wouldn't work as we can have only instant eve
| |
| 916 var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(nextEv ent.name).category.name; | 920 hasChildren = true; |
| 917 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextEvent .selfTime; | 921 var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(ne xtEvent.name).category.name; |
| 922 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextE vent.selfTime; | |
| 923 } | |
| 918 } | 924 } |
| 919 return aggregatedStats; | 925 return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; |
| 920 } | 926 } |
| 921 | 927 |
| 922 /** | 928 /** |
| 923 * @param {!Array.<number>} quad | 929 * @param {!Array.<number>} quad |
| 924 * @return {number} | 930 * @return {number} |
| 925 */ | 931 */ |
| 926 WebInspector.TimelineUIUtils._quadHeight = function(quad) | 932 WebInspector.TimelineUIUtils._quadHeight = function(quad) |
| 927 { | 933 { |
| 928 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2))); | 934 return Math.round(Math.sqrt(Math.pow(quad[0] - quad[6], 2) + Math.pow(quad[1 ] - quad[7], 2))); |
| 929 } | 935 } |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1379 for (var i = 0; i < stackTrace.length; ++i) { | 1385 for (var i = 0; i < stackTrace.length; ++i) { |
| 1380 var stackFrame = stackTrace[i]; | 1386 var stackFrame = stackTrace[i]; |
| 1381 var row = stackTraceElement.createChild("div"); | 1387 var row = stackTraceElement.createChild("div"); |
| 1382 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); | 1388 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); |
| 1383 row.createTextChild(" @ "); | 1389 row.createTextChild(" @ "); |
| 1384 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1); | 1390 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1); |
| 1385 row.appendChild(urlElement); | 1391 row.appendChild(urlElement); |
| 1386 } | 1392 } |
| 1387 } | 1393 } |
| 1388 } | 1394 } |
| OLD | NEW |