OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 * @extends {WebInspector.TimelineUIUtils} | 7 * @extends {WebInspector.TimelineUIUtils} |
8 */ | 8 */ |
9 WebInspector.TracingTimelineUIUtils = function() | 9 WebInspector.TracingTimelineUIUtils = function() |
10 { | 10 { |
(...skipping 27 matching lines...) Expand all Loading... |
38 { | 38 { |
39 return !!WebInspector.TracingTimelineUIUtils._coalescableRecordTypes[rec
ordType]; | 39 return !!WebInspector.TracingTimelineUIUtils._coalescableRecordTypes[rec
ordType]; |
40 }, | 40 }, |
41 | 41 |
42 /** | 42 /** |
43 * @param {!WebInspector.TimelineModel.Record} record | 43 * @param {!WebInspector.TimelineModel.Record} record |
44 * @return {boolean} | 44 * @return {boolean} |
45 */ | 45 */ |
46 isEventDivider: function(record) | 46 isEventDivider: function(record) |
47 { | 47 { |
48 return WebInspector.TracingTimelineUIUtils.isEventDivider(record); | 48 return WebInspector.TracingTimelineUIUtils.isMarkerEvent(record.traceEve
nt()); |
49 }, | 49 }, |
50 | 50 |
51 /** | 51 /** |
52 * @param {!WebInspector.TimelineModel.Record} record | 52 * @param {!WebInspector.TimelineModel.Record} record |
53 * @return {?Object} | 53 * @return {?Object} |
54 */ | 54 */ |
55 countersForRecord: function(record) | 55 countersForRecord: function(record) |
56 { | 56 { |
57 return record.type() === WebInspector.TracingTimelineModel.RecordType.Up
dateCounters ? record.data() : null; | 57 return record.type() === WebInspector.TracingTimelineModel.RecordType.Up
dateCounters ? record.data() : null; |
58 }, | 58 }, |
59 | 59 |
60 /** | 60 /** |
61 * @param {!WebInspector.TimelineModel.Record} record | 61 * @param {!WebInspector.TimelineModel.Record} record |
62 * @return {?Object} | 62 * @return {?Object} |
63 */ | 63 */ |
64 highlightQuadForRecord: function(record) | 64 highlightQuadForRecord: function(record) |
65 { | 65 { |
66 return record.traceEvent().highlightQuad || null; | 66 return record.traceEvent().highlightQuad || null; |
67 }, | 67 }, |
68 | 68 |
69 /** | 69 /** |
70 * @param {!WebInspector.TimelineModel.Record} record | 70 * @param {!WebInspector.TimelineModel.Record} record |
71 * @return {string} | 71 * @return {string} |
72 */ | 72 */ |
73 titleForRecord: function(record) | 73 titleForRecord: function(record) |
74 { | 74 { |
75 return WebInspector.TracingTimelineUIUtils._recordTitle(/** @type {!WebI
nspector.TracingTimelineModel.TraceEventRecord} */(record)); | 75 var event = record.traceEvent(); |
| 76 return WebInspector.TracingTimelineUIUtils.eventTitle(event, record.time
lineModel()); |
76 }, | 77 }, |
77 | 78 |
78 /** | 79 /** |
79 * @param {!WebInspector.TimelineModel.Record} record | 80 * @param {!WebInspector.TimelineModel.Record} record |
80 * @return {!WebInspector.TimelineCategory} | 81 * @return {!WebInspector.TimelineCategory} |
81 */ | 82 */ |
82 categoryForRecord: function(record) | 83 categoryForRecord: function(record) |
83 { | 84 { |
84 return WebInspector.TracingTimelineUIUtils.styleForTraceEvent(record.tra
ceEvent().name).category; | 85 return WebInspector.TracingTimelineUIUtils.styleForTraceEvent(record.tra
ceEvent().name).category; |
85 }, | 86 }, |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
205 eventStyles[recordTypes.RequestMainThreadFrame] = new WebInspector.TimelineR
ecordStyle(WebInspector.UIString("Request Main Thread Frame"), categories["rende
ring"], true); | 206 eventStyles[recordTypes.RequestMainThreadFrame] = new WebInspector.TimelineR
ecordStyle(WebInspector.UIString("Request Main Thread Frame"), categories["rende
ring"], true); |
206 eventStyles[recordTypes.BeginFrame] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Frame Start"), categories["rendering"], true); | 207 eventStyles[recordTypes.BeginFrame] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Frame Start"), categories["rendering"], true); |
207 eventStyles[recordTypes.BeginMainThreadFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Frame Start (main thread)"), categories["renderi
ng"], true); | 208 eventStyles[recordTypes.BeginMainThreadFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Frame Start (main thread)"), categories["renderi
ng"], true); |
208 eventStyles[recordTypes.DrawFrame] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Draw Frame"), categories["rendering"], true); | 209 eventStyles[recordTypes.DrawFrame] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Draw Frame"), categories["rendering"], true); |
209 eventStyles[recordTypes.ScheduleStyleRecalculation] = new WebInspector.Timel
ineRecordStyle(WebInspector.UIString("Schedule Style Recalculation"), categories
["rendering"], true); | 210 eventStyles[recordTypes.ScheduleStyleRecalculation] = new WebInspector.Timel
ineRecordStyle(WebInspector.UIString("Schedule Style Recalculation"), categories
["rendering"], true); |
210 eventStyles[recordTypes.RecalculateStyles] = new WebInspector.TimelineRecord
Style(WebInspector.UIString("Recalculate Style"), categories["rendering"]); | 211 eventStyles[recordTypes.RecalculateStyles] = new WebInspector.TimelineRecord
Style(WebInspector.UIString("Recalculate Style"), categories["rendering"]); |
211 eventStyles[recordTypes.InvalidateLayout] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Invalidate Layout"), categories["rendering"], true); | 212 eventStyles[recordTypes.InvalidateLayout] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Invalidate Layout"), categories["rendering"], true); |
212 eventStyles[recordTypes.Layout] = new WebInspector.TimelineRecordStyle(WebIn
spector.UIString("Layout"), categories["rendering"]); | 213 eventStyles[recordTypes.Layout] = new WebInspector.TimelineRecordStyle(WebIn
spector.UIString("Layout"), categories["rendering"]); |
213 eventStyles[recordTypes.PaintSetup] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint Setup"), categories["painting"]); | 214 eventStyles[recordTypes.PaintSetup] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint Setup"), categories["painting"]); |
214 eventStyles[recordTypes.UpdateLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Update Layer"), categories["painting"], true); | 215 eventStyles[recordTypes.UpdateLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Update Layer"), categories["painting"], true); |
215 eventStyles[recordTypes.UpdateLayerTree] = { title: WebInspector.UIString("U
pdate Layer Tree"), category: categories["rendering"] }; | 216 eventStyles[recordTypes.UpdateLayerTree] = new WebInspector.TimelineRecordSt
yle(WebInspector.UIString("Update Layer Tree"), categories["rendering"], true); |
216 eventStyles[recordTypes.Paint] = new WebInspector.TimelineRecordStyle(WebIns
pector.UIString("Paint"), categories["painting"]); | 217 eventStyles[recordTypes.Paint] = new WebInspector.TimelineRecordStyle(WebIns
pector.UIString("Paint"), categories["painting"]); |
217 eventStyles[recordTypes.Rasterize] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Paint"), categories["painting"]); | 218 eventStyles[recordTypes.Rasterize] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Paint"), categories["painting"]); |
218 eventStyles[recordTypes.RasterTask] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint"), categories["painting"]); | 219 eventStyles[recordTypes.RasterTask] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint"), categories["painting"]); |
219 eventStyles[recordTypes.ScrollLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Scroll"), categories["rendering"]); | 220 eventStyles[recordTypes.ScrollLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Scroll"), categories["rendering"]); |
220 eventStyles[recordTypes.CompositeLayers] = new WebInspector.TimelineRecordSt
yle(WebInspector.UIString("Composite Layers"), categories["painting"]); | 221 eventStyles[recordTypes.CompositeLayers] = new WebInspector.TimelineRecordSt
yle(WebInspector.UIString("Composite Layers"), categories["painting"]); |
221 eventStyles[recordTypes.ParseHTML] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Parse HTML"), categories["loading"]); | 222 eventStyles[recordTypes.ParseHTML] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Parse HTML"), categories["loading"]); |
222 eventStyles[recordTypes.TimerInstall] = new WebInspector.TimelineRecordStyle
(WebInspector.UIString("Install Timer"), categories["scripting"]); | 223 eventStyles[recordTypes.TimerInstall] = new WebInspector.TimelineRecordStyle
(WebInspector.UIString("Install Timer"), categories["scripting"]); |
223 eventStyles[recordTypes.TimerRemove] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Remove Timer"), categories["scripting"]); | 224 eventStyles[recordTypes.TimerRemove] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Remove Timer"), categories["scripting"]); |
224 eventStyles[recordTypes.TimerFire] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Timer Fired"), categories["scripting"]); | 225 eventStyles[recordTypes.TimerFire] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Timer Fired"), categories["scripting"]); |
225 eventStyles[recordTypes.XHRReadyStateChange] = new WebInspector.TimelineReco
rdStyle(WebInspector.UIString("XHR Ready State Change"), categories["scripting"]
); | 226 eventStyles[recordTypes.XHRReadyStateChange] = new WebInspector.TimelineReco
rdStyle(WebInspector.UIString("XHR Ready State Change"), categories["scripting"]
); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 var eventStyles = WebInspector.TracingTimelineUIUtils._initEventStyles(); | 277 var eventStyles = WebInspector.TracingTimelineUIUtils._initEventStyles(); |
277 var result = eventStyles[name]; | 278 var result = eventStyles[name]; |
278 if (!result) { | 279 if (!result) { |
279 result = new WebInspector.TimelineRecordStyle(WebInspector.UIString("Unk
nown: %s", name), WebInspector.TimelineUIUtils.categories()["other"]); | 280 result = new WebInspector.TimelineRecordStyle(WebInspector.UIString("Unk
nown: %s", name), WebInspector.TimelineUIUtils.categories()["other"]); |
280 eventStyles[name] = result; | 281 eventStyles[name] = result; |
281 } | 282 } |
282 return result; | 283 return result; |
283 } | 284 } |
284 | 285 |
285 /** | 286 /** |
286 * @param {!WebInspector.TracingTimelineModel.TraceEventRecord} record | 287 * @param {string} eventName |
287 * @return {string} | 288 * @return {string} |
288 */ | 289 */ |
289 WebInspector.TracingTimelineUIUtils._recordTitle = function(record) | 290 WebInspector.TracingTimelineUIUtils.markerEventColor = function(eventName) |
290 { | 291 { |
291 var event = record.traceEvent(); | 292 var red = "rgb(255, 0, 0)"; |
| 293 var blue = "rgb(0, 0, 255)"; |
| 294 var orange = "rgb(255, 178, 23)"; |
| 295 var green = "rgb(0, 130, 0)"; |
| 296 |
| 297 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
| 298 switch (eventName) { |
| 299 case recordTypes.MarkDOMContent: return blue; |
| 300 case recordTypes.MarkLoad: return red; |
| 301 case recordTypes.MarkFirstPaint: return green; |
| 302 case recordTypes.TimeStamp: return orange; |
| 303 } |
| 304 return green; |
| 305 } |
| 306 |
| 307 /** |
| 308 * @param {!WebInspector.TracingModel.Event} event |
| 309 * @param {!WebInspector.TimelineModel} model |
| 310 * @return {string} |
| 311 */ |
| 312 WebInspector.TracingTimelineUIUtils.eventTitle = function(event, model) |
| 313 { |
292 if (event.name === WebInspector.TracingTimelineModel.RecordType.TimeStamp) | 314 if (event.name === WebInspector.TracingTimelineModel.RecordType.TimeStamp) |
293 return event.args.data["message"]; | 315 return event.args.data["message"]; |
294 var title = WebInspector.TracingTimelineUIUtils.eventStyle(event).title; | 316 var title = WebInspector.TracingTimelineUIUtils.eventStyle(event).title; |
295 if (WebInspector.TracingTimelineUIUtils.isEventDivider(record)) { | 317 if (WebInspector.TracingTimelineUIUtils.isMarkerEvent(event)) { |
296 var startTime = Number.millisToString(record.startTime() - record.timeli
neModel().minimumRecordTime()); | 318 var startTime = Number.millisToString(event.startTime - model.minimumRec
ordTime()); |
297 return WebInspector.UIString("%s at %s", title, startTime); | 319 return WebInspector.UIString("%s at %s", title, startTime); |
298 } | 320 } |
299 return title; | 321 return title; |
300 } | 322 } |
301 | 323 |
302 /** | 324 /** |
303 * @param {!WebInspector.TimelineModel.Record} record | 325 * @param {!WebInspector.TracingModel.Event} event |
304 * @return {boolean} | 326 * @return {boolean} |
305 */ | 327 */ |
306 WebInspector.TracingTimelineUIUtils.isEventDivider = function(record) | 328 WebInspector.TracingTimelineUIUtils.isMarkerEvent = function(event) |
307 { | 329 { |
308 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 330 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
309 if (record.type() === recordTypes.TimeStamp) | 331 switch (event.name) { |
| 332 case recordTypes.TimeStamp: |
310 return true; | 333 return true; |
311 if (record.type() === recordTypes.MarkFirstPaint) | 334 case recordTypes.MarkFirstPaint: |
312 return true; | 335 return true; |
313 if (record.type() === recordTypes.MarkDOMContent || record.type() === record
Types.MarkLoad) | 336 case recordTypes.MarkDOMContent: |
314 return record.data()["isMainFrame"]; | 337 case recordTypes.MarkLoad: |
315 return false; | 338 return event.args.data["isMainFrame"]; |
| 339 default: |
| 340 return false; |
| 341 } |
316 } | 342 } |
317 | 343 |
318 /** | 344 /** |
319 * @param {!WebInspector.TracingModel.Event} event | 345 * @param {!WebInspector.TracingModel.Event} event |
320 * @param {!WebInspector.Linkifier} linkifier | 346 * @param {!WebInspector.Linkifier} linkifier |
321 * @return {?Node} | 347 * @return {?Node} |
322 */ | 348 */ |
323 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve
nt, linkifier) | 349 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve
nt, linkifier) |
324 { | 350 { |
325 var recordType = WebInspector.TracingTimelineModel.RecordType; | 351 var recordType = WebInspector.TracingTimelineModel.RecordType; |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 return result; | 810 return result; |
785 } | 811 } |
786 | 812 |
787 /** | 813 /** |
788 * @return {!WebInspector.TracingTimelineModel.Filter} | 814 * @return {!WebInspector.TracingTimelineModel.Filter} |
789 */ | 815 */ |
790 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() | 816 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() |
791 { | 817 { |
792 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns
pector.TracingTimelineUIUtils._visibleTypes()); | 818 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns
pector.TracingTimelineUIUtils._visibleTypes()); |
793 } | 819 } |
OLD | NEW |