| OLD | NEW |
| 1 /** | 1 /** |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 * @param {number} entryIndex | 174 * @param {number} entryIndex |
| 175 * @return {?string} | 175 * @return {?string} |
| 176 */ | 176 */ |
| 177 entryFont: function(entryIndex) { }, | 177 entryFont: function(entryIndex) { }, |
| 178 | 178 |
| 179 /** | 179 /** |
| 180 * @param {number} entryIndex | 180 * @param {number} entryIndex |
| 181 * @return {!string} | 181 * @return {!string} |
| 182 */ | 182 */ |
| 183 entryColor: function(entryIndex) { }, | 183 entryColor: function(entryIndex) { }, |
| 184 |
| 185 /** |
| 186 * @param {number} entryIndex |
| 187 * @return {!string} |
| 188 */ |
| 189 textColor: function(entryIndex) { }, |
| 190 |
| 191 /** |
| 192 * @return {number} |
| 193 */ |
| 194 textBaseline: function() { }, |
| 195 |
| 196 /** |
| 197 * @return {number} |
| 198 */ |
| 199 textPadding: function() { } |
| 184 } | 200 } |
| 185 | 201 |
| 186 /** | 202 /** |
| 187 * @constructor | 203 * @constructor |
| 188 * @implements {WebInspector.TimelineGrid.Calculator} | 204 * @implements {WebInspector.TimelineGrid.Calculator} |
| 189 */ | 205 */ |
| 190 WebInspector.FlameChart.Calculator = function() | 206 WebInspector.FlameChart.Calculator = function() |
| 191 { | 207 { |
| 192 this._paddingLeft = 0; | 208 this._paddingLeft = 0; |
| 193 } | 209 } |
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 812 var pixelWindowLeft = this._pixelWindowLeft; | 828 var pixelWindowLeft = this._pixelWindowLeft; |
| 813 var paddingLeft = this._paddingLeft; | 829 var paddingLeft = this._paddingLeft; |
| 814 var minWidth = this._minWidth; | 830 var minWidth = this._minWidth; |
| 815 var entryTotalTimes = timelineData.entryTotalTimes; | 831 var entryTotalTimes = timelineData.entryTotalTimes; |
| 816 var entryOffsets = timelineData.entryOffsets; | 832 var entryOffsets = timelineData.entryOffsets; |
| 817 var entryLevels = timelineData.entryLevels; | 833 var entryLevels = timelineData.entryLevels; |
| 818 | 834 |
| 819 var titleIndexes = new Uint32Array(timelineData.entryTotalTimes); | 835 var titleIndexes = new Uint32Array(timelineData.entryTotalTimes); |
| 820 var lastTitleIndex = 0; | 836 var lastTitleIndex = 0; |
| 821 var dotsWidth = context.measureText("\u2026").width; | 837 var dotsWidth = context.measureText("\u2026").width; |
| 822 var textPaddingLeft = 2; | 838 var textPadding = this._dataProvider.textPadding(); |
| 823 this._minTextWidth = context.measureText("\u2026").width + textPaddingLe
ft; | 839 this._minTextWidth = context.measureText("\u2026").width + 2 * textPaddi
ng; |
| 824 var minTextWidth = this._minTextWidth; | 840 var minTextWidth = this._minTextWidth; |
| 825 | 841 |
| 826 var lastDrawOffset = new Int32Array(this._dataProvider.maxStackDepth()); | 842 var lastDrawOffset = new Int32Array(this._dataProvider.maxStackDepth()); |
| 827 for (var i = 0; i < lastDrawOffset.length; ++i) | 843 for (var i = 0; i < lastDrawOffset.length; ++i) |
| 828 lastDrawOffset[i] = -1; | 844 lastDrawOffset[i] = -1; |
| 829 | 845 |
| 830 var barX = 0; | 846 var barX = 0; |
| 831 var barY = 0; | 847 var barY = 0; |
| 832 var barWidth = 0; | 848 var barWidth = 0; |
| 833 var barRight = 0; | 849 var barRight = 0; |
| 834 var barLevel = 0; | 850 var barLevel = 0; |
| 835 var barHeight = this._barHeight; | 851 var barHeight = this._barHeight; |
| 836 this._baseHeight = this._isTopDown ? WebInspector.FlameChart.DividersBar
Height : height - this._barHeight; | 852 this._baseHeight = this._isTopDown ? WebInspector.FlameChart.DividersBar
Height : height - this._barHeight; |
| 837 context.strokeStyle = "black"; | 853 context.strokeStyle = "black"; |
| 838 var color; | 854 var color; |
| 839 var entryIndex = 0; | 855 var entryIndex = 0; |
| 840 var entryOffset = 0; | 856 var entryOffset = 0; |
| 841 | 857 |
| 842 var colorBuckets = {}; | 858 var colorBuckets = {}; |
| 843 var colors = []; | 859 var colors = []; |
| 844 var bucket = []; | 860 var bucket = []; |
| 845 | 861 |
| 846 var textBaseHeight = this._baseHeight + this._barHeight - 4; | 862 var textBaseHeight = this._baseHeight + this._barHeight - this._dataProv
ider.textBaseline(); |
| 847 var lastUsedFont = ""; | 863 var lastUsedFont = ""; |
| 848 var font; | 864 var font; |
| 865 var textColor; |
| 866 var lastTextColor = ""; |
| 849 var text = ""; | 867 var text = ""; |
| 850 var xText = 0; | 868 var xText = 0; |
| 851 var textWidth = 0; | 869 var textWidth = 0; |
| 852 var title = ""; | 870 var title = ""; |
| 853 var i = 0; | 871 var i = 0; |
| 854 var c = 0; | 872 var c = 0; |
| 855 | 873 |
| 856 var entryOffsetRight = 0; | 874 var entryOffsetRight = 0; |
| 857 var maxBarLevel = height / this._barHeight; | 875 var maxBarLevel = height / this._barHeight; |
| 858 for (entryIndex = 0; entryIndex < entryOffsets.length; ++entryIndex) { | 876 for (entryIndex = 0; entryIndex < entryOffsets.length; ++entryIndex) { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 912 context.textBaseline = "alphabetic"; | 930 context.textBaseline = "alphabetic"; |
| 913 context.fillStyle = "#333"; | 931 context.fillStyle = "#333"; |
| 914 this._dotsWidth = context.measureText("\u2026").width; | 932 this._dotsWidth = context.measureText("\u2026").width; |
| 915 | 933 |
| 916 for (i = 0; i < lastTitleIndex; ++i) { | 934 for (i = 0; i < lastTitleIndex; ++i) { |
| 917 entryIndex = titleIndexes[i]; | 935 entryIndex = titleIndexes[i]; |
| 918 text = this._dataProvider.entryTitle(entryIndex); | 936 text = this._dataProvider.entryTitle(entryIndex); |
| 919 if (!text || !text.length) | 937 if (!text || !text.length) |
| 920 continue; | 938 continue; |
| 921 font = this._dataProvider.entryFont(entryIndex); | 939 font = this._dataProvider.entryFont(entryIndex); |
| 922 if (font !== lastUsedFont) | |
| 923 context.font = font; | |
| 924 | |
| 925 entryOffset = entryOffsets[entryIndex]; | 940 entryOffset = entryOffsets[entryIndex]; |
| 926 barX = this._offsetToPosition(entryOffset); | 941 barX = this._offsetToPosition(entryOffset); |
| 927 barRight = this._offsetToPosition(entryOffset + entryTotalTimes[entr
yIndex]); | 942 barRight = this._offsetToPosition(entryOffset + entryTotalTimes[entr
yIndex]); |
| 928 barWidth = Math.max(barRight - barX, minWidth); | 943 barWidth = Math.max(barRight - barX, minWidth); |
| 929 xText = Math.max(0, barX); | 944 xText = Math.max(0, barX); |
| 930 textWidth = barWidth - textPaddingLeft + barX - xText; | 945 textWidth = barWidth - 2 * textPadding + barX - xText; |
| 931 title = this._prepareText(context, text, textWidth); | 946 title = this._prepareText(context, text, textWidth); |
| 932 if (title) | 947 if (!title) |
| 933 context.fillText(title, xText + textPaddingLeft, textBaseHeight
- entryLevels[entryIndex] * this._barHeightDelta); | 948 continue; |
| 949 if (font !== lastUsedFont) { |
| 950 context.font = font; |
| 951 lastUsedFont = font; |
| 952 } |
| 953 textColor = this._dataProvider.textColor(entryIndex); |
| 954 if (textColor !== lastTextColor) { |
| 955 context.fillStyle = textColor; |
| 956 lastTextColor = textColor; |
| 957 } |
| 958 context.fillText(title, xText + textPadding, textBaseHeight - entryL
evels[entryIndex] * this._barHeightDelta); |
| 934 } | 959 } |
| 935 this._updateHighlightElement(); | 960 this._updateHighlightElement(); |
| 936 }, | 961 }, |
| 937 | 962 |
| 938 _updateHighlightElement: function() | 963 _updateHighlightElement: function() |
| 939 { | 964 { |
| 940 if (this._highlightElement.parentElement) | 965 if (this._highlightElement.parentElement) |
| 941 this._highlightElement.remove(); | 966 this._highlightElement.remove(); |
| 942 var entryIndex = this._highlightedEntryIndex; | 967 var entryIndex = this._highlightedEntryIndex; |
| 943 if (entryIndex === -1) | 968 if (entryIndex === -1) |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1073 this._timelineGrid.hideDividers(); | 1098 this._timelineGrid.hideDividers(); |
| 1074 this.draw(this.element.clientWidth, this.element.clientHeight); | 1099 this.draw(this.element.clientWidth, this.element.clientHeight); |
| 1075 this._calculator._updateBoundaries(this); | 1100 this._calculator._updateBoundaries(this); |
| 1076 this._timelineGrid.element.style.width = this.element.clientWidth; | 1101 this._timelineGrid.element.style.width = this.element.clientWidth; |
| 1077 var offsets = this._dataProvider.dividerOffsets(this._calculator.minimum
Boundary(), this._calculator.maximumBoundary()); | 1102 var offsets = this._dataProvider.dividerOffsets(this._calculator.minimum
Boundary(), this._calculator.maximumBoundary()); |
| 1078 this._timelineGrid.updateDividers(this._calculator, offsets, true); | 1103 this._timelineGrid.updateDividers(this._calculator, offsets, true); |
| 1079 }, | 1104 }, |
| 1080 | 1105 |
| 1081 __proto__: WebInspector.View.prototype | 1106 __proto__: WebInspector.View.prototype |
| 1082 } | 1107 } |
| OLD | NEW |