OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 25 matching lines...) Expand all Loading... |
36 */ | 36 */ |
37 WebInspector.TimelineFlameChartDataProvider = function(model, frameModel) | 37 WebInspector.TimelineFlameChartDataProvider = function(model, frameModel) |
38 { | 38 { |
39 WebInspector.FlameChartDataProvider.call(this); | 39 WebInspector.FlameChartDataProvider.call(this); |
40 this.reset(); | 40 this.reset(); |
41 this._model = model; | 41 this._model = model; |
42 this._frameModel = frameModel; | 42 this._frameModel = frameModel; |
43 this._font = "12px " + WebInspector.fontFamily(); | 43 this._font = "12px " + WebInspector.fontFamily(); |
44 this._linkifier = new WebInspector.Linkifier(); | 44 this._linkifier = new WebInspector.Linkifier(); |
45 this._filters = []; | 45 this._filters = []; |
46 this.addFilter(WebInspector.TracingTimelineUIUtils.hiddenEventsFilter()); | 46 this.addFilter(WebInspector.TimelineUIUtils.hiddenEventsFilter()); |
47 this.addFilter(new WebInspector.TracingTimelineModel.ExclusiveEventNameFilte
r([WebInspector.TracingTimelineModel.RecordType.Program])); | 47 this.addFilter(new WebInspector.TracingTimelineModel.ExclusiveEventNameFilte
r([WebInspector.TracingTimelineModel.RecordType.Program])); |
48 } | 48 } |
49 | 49 |
50 WebInspector.TimelineFlameChartDataProvider.InstantEventVisibleDurationMs = 0.01
; | 50 WebInspector.TimelineFlameChartDataProvider.InstantEventVisibleDurationMs = 0.01
; |
51 WebInspector.TimelineFlameChartDataProvider.JSFrameCoalesceThresholdMs = 1.1; | 51 WebInspector.TimelineFlameChartDataProvider.JSFrameCoalesceThresholdMs = 1.1; |
52 | 52 |
53 /** | 53 /** |
54 * @return {!WebInspector.FlameChart.ColorGenerator} | 54 * @return {!WebInspector.FlameChart.ColorGenerator} |
55 */ | 55 */ |
56 WebInspector.TimelineFlameChartDataProvider.consoleEventsColorGenerator = functi
on() | 56 WebInspector.TimelineFlameChartDataProvider.consoleEventsColorGenerator = functi
on() |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 * @param {number} entryIndex | 102 * @param {number} entryIndex |
103 * @return {?string} | 103 * @return {?string} |
104 */ | 104 */ |
105 entryTitle: function(entryIndex) | 105 entryTitle: function(entryIndex) |
106 { | 106 { |
107 var event = this._entryEvents[entryIndex]; | 107 var event = this._entryEvents[entryIndex]; |
108 if (event) { | 108 if (event) { |
109 if (event.phase === WebInspector.TracingModel.Phase.AsyncStepInto ||
event.phase === WebInspector.TracingModel.Phase.AsyncStepPast) | 109 if (event.phase === WebInspector.TracingModel.Phase.AsyncStepInto ||
event.phase === WebInspector.TracingModel.Phase.AsyncStepPast) |
110 return event.name + ":" + event.args["step"]; | 110 return event.name + ":" + event.args["step"]; |
111 | 111 |
112 var name = WebInspector.TracingTimelineUIUtils.eventStyle(event).tit
le; | 112 var name = WebInspector.TimelineUIUtils.eventStyle(event).title; |
113 // TODO(yurys): support event dividers | 113 // TODO(yurys): support event dividers |
114 var details = WebInspector.TracingTimelineUIUtils.buildDetailsNodeFo
rTraceEvent(event, this._linkifier); | 114 var details = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE
vent(event, this._linkifier); |
115 if (event.name === WebInspector.TracingTimelineModel.RecordType.JSFr
ame && details) | 115 if (event.name === WebInspector.TracingTimelineModel.RecordType.JSFr
ame && details) |
116 return details.textContent; | 116 return details.textContent; |
117 return details ? WebInspector.UIString("%s (%s)", name, details.text
Content) : name; | 117 return details ? WebInspector.UIString("%s (%s)", name, details.text
Content) : name; |
118 } | 118 } |
119 var title = this._entryIndexToTitle[entryIndex]; | 119 var title = this._entryIndexToTitle[entryIndex]; |
120 if (!title) { | 120 if (!title) { |
121 title = WebInspector.UIString("Unexpected entryIndex %d", entryIndex
); | 121 title = WebInspector.UIString("Unexpected entryIndex %d", entryIndex
); |
122 console.error(title); | 122 console.error(title); |
123 } | 123 } |
124 return title; | 124 return title; |
(...skipping 10 matching lines...) Expand all Loading... |
135 }, | 135 }, |
136 | 136 |
137 /** | 137 /** |
138 * @override | 138 * @override |
139 * @param {number} index | 139 * @param {number} index |
140 * @return {string} | 140 * @return {string} |
141 */ | 141 */ |
142 markerColor: function(index) | 142 markerColor: function(index) |
143 { | 143 { |
144 var event = this._markerEvents[index]; | 144 var event = this._markerEvents[index]; |
145 return WebInspector.TracingTimelineUIUtils.markerEventColor(event); | 145 return WebInspector.TimelineUIUtils.markerEventColor(event); |
146 }, | 146 }, |
147 | 147 |
148 /** | 148 /** |
149 * @override | 149 * @override |
150 * @param {number} index | 150 * @param {number} index |
151 * @return {string} | 151 * @return {string} |
152 */ | 152 */ |
153 markerTitle: function(index) | 153 markerTitle: function(index) |
154 { | 154 { |
155 var event = this._markerEvents[index]; | 155 var event = this._markerEvents[index]; |
156 return WebInspector.TracingTimelineUIUtils.eventTitle(event, this._model
); | 156 return WebInspector.TimelineUIUtils.eventTitle(event, this._model); |
157 }, | 157 }, |
158 | 158 |
159 /** | 159 /** |
160 * @override | 160 * @override |
161 * @param {number} index | 161 * @param {number} index |
162 * @return {boolean} | 162 * @return {boolean} |
163 */ | 163 */ |
164 isTallMarker: function(index) | 164 isTallMarker: function(index) |
165 { | 165 { |
166 var event = this._markerEvents[index]; | 166 var event = this._markerEvents[index]; |
167 return WebInspector.TracingTimelineUIUtils.isTallMarkerEvent(event); | 167 return WebInspector.TimelineUIUtils.isTallMarkerEvent(event); |
168 }, | 168 }, |
169 | 169 |
170 reset: function() | 170 reset: function() |
171 { | 171 { |
172 this._timelineData = null; | 172 this._timelineData = null; |
173 /** @type {!Array.<!WebInspector.TracingModel.Event>} */ | 173 /** @type {!Array.<!WebInspector.TracingModel.Event>} */ |
174 this._entryEvents = []; | 174 this._entryEvents = []; |
175 this._entryIndexToTitle = {}; | 175 this._entryIndexToTitle = {}; |
176 this._markerEvents = []; | 176 this._markerEvents = []; |
177 this._entryIndexToFrame = {}; | 177 this._entryIndexToFrame = {}; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 * @return {boolean} | 223 * @return {boolean} |
224 */ | 224 */ |
225 _appendSyncEvents: function(headerName, events) | 225 _appendSyncEvents: function(headerName, events) |
226 { | 226 { |
227 var openEvents = []; | 227 var openEvents = []; |
228 var headerAppended = false; | 228 var headerAppended = false; |
229 | 229 |
230 var maxStackDepth = 0; | 230 var maxStackDepth = 0; |
231 for (var i = 0; i < events.length; ++i) { | 231 for (var i = 0; i < events.length; ++i) { |
232 var e = events[i]; | 232 var e = events[i]; |
233 if (WebInspector.TracingTimelineUIUtils.isMarkerEvent(e)) { | 233 if (WebInspector.TimelineUIUtils.isMarkerEvent(e)) { |
234 this._markerEvents.push(e); | 234 this._markerEvents.push(e); |
235 this._timelineData.markerTimestamps.push(e.startTime); | 235 this._timelineData.markerTimestamps.push(e.startTime); |
236 } | 236 } |
237 if (!e.endTime && e.phase !== WebInspector.TracingModel.Phase.Instan
t) | 237 if (!e.endTime && e.phase !== WebInspector.TracingModel.Phase.Instan
t) |
238 continue; | 238 continue; |
239 if (WebInspector.TracingModel.isAsyncPhase(e.phase)) | 239 if (WebInspector.TracingModel.isAsyncPhase(e.phase)) |
240 continue; | 240 continue; |
241 if (!this._isVisible(e)) | 241 if (!this._isVisible(e)) |
242 continue; | 242 continue; |
243 while (openEvents.length && openEvents.peekLast().endTime <= e.start
Time) | 243 while (openEvents.length && openEvents.peekLast().endTime <= e.start
Time) |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 * @param {number} entryIndex | 460 * @param {number} entryIndex |
461 * @return {string} | 461 * @return {string} |
462 */ | 462 */ |
463 entryColor: function(entryIndex) | 463 entryColor: function(entryIndex) |
464 { | 464 { |
465 var event = this._entryEvents[entryIndex]; | 465 var event = this._entryEvents[entryIndex]; |
466 if (!event) | 466 if (!event) |
467 return this._entryIndexToFrame[entryIndex] ? "white" : "#555"; | 467 return this._entryIndexToFrame[entryIndex] ? "white" : "#555"; |
468 if (event.name === WebInspector.TracingTimelineModel.RecordType.JSFrame) | 468 if (event.name === WebInspector.TracingTimelineModel.RecordType.JSFrame) |
469 return this._timelineData.entryLevels[entryIndex] % 2 ? "#efb320" :
"#fcc02d"; | 469 return this._timelineData.entryLevels[entryIndex] % 2 ? "#efb320" :
"#fcc02d"; |
470 var category = WebInspector.TracingTimelineUIUtils.eventStyle(event).cat
egory; | 470 var category = WebInspector.TimelineUIUtils.eventStyle(event).category; |
471 if (WebInspector.TracingModel.isAsyncPhase(event.phase)) { | 471 if (WebInspector.TracingModel.isAsyncPhase(event.phase)) { |
472 if (event.category === WebInspector.TracingModel.ConsoleEventCategor
y) | 472 if (event.category === WebInspector.TracingModel.ConsoleEventCategor
y) |
473 return WebInspector.TimelineFlameChartDataProvider.consoleEvents
ColorGenerator().colorForID(event.name); | 473 return WebInspector.TimelineFlameChartDataProvider.consoleEvents
ColorGenerator().colorForID(event.name); |
474 var color = this._asyncColorByCategory[category.name]; | 474 var color = this._asyncColorByCategory[category.name]; |
475 if (color) | 475 if (color) |
476 return color; | 476 return color; |
477 var parsedColor = WebInspector.Color.parse(category.fillColorStop1); | 477 var parsedColor = WebInspector.Color.parse(category.fillColorStop1); |
478 color = parsedColor.setAlpha(0.7).toString(WebInspector.Color.Format
.RGBA) || ""; | 478 color = parsedColor.setAlpha(0.7).toString(WebInspector.Color.Format
.RGBA) || ""; |
479 this._asyncColorByCategory[category.name] = color; | 479 this._asyncColorByCategory[category.name] = color; |
480 return color; | 480 return color; |
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
889 /** | 889 /** |
890 * @constructor | 890 * @constructor |
891 * @param {!WebInspector.TimelineSelection} selection | 891 * @param {!WebInspector.TimelineSelection} selection |
892 * @param {number} entryIndex | 892 * @param {number} entryIndex |
893 */ | 893 */ |
894 WebInspector.TimelineFlameChart.Selection = function(selection, entryIndex) | 894 WebInspector.TimelineFlameChart.Selection = function(selection, entryIndex) |
895 { | 895 { |
896 this.timelineSelection = selection; | 896 this.timelineSelection = selection; |
897 this.entryIndex = entryIndex; | 897 this.entryIndex = entryIndex; |
898 } | 898 } |
OLD | NEW |