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 */ | 6 */ |
7 WebInspector.TracingTimelineUIUtils = function() { } | 7 WebInspector.TracingTimelineUIUtils = function() { } |
8 | 8 |
9 /** | 9 /** |
| 10 * @constructor |
| 11 * @param {string} title |
| 12 * @param {!WebInspector.TimelineCategory} category |
| 13 */ |
| 14 WebInspector.TimelineRecordStyle = function(title, category) |
| 15 { |
| 16 this.title = title; |
| 17 this.category = category; |
| 18 } |
| 19 |
| 20 /** |
| 21 * @return {!Object.<string, !WebInspector.TimelineRecordStyle>} |
| 22 */ |
| 23 WebInspector.TracingTimelineUIUtils._initEventStyles = function() |
| 24 { |
| 25 if (WebInspector.TracingTimelineUIUtils._eventStylesMap) |
| 26 return WebInspector.TracingTimelineUIUtils._eventStylesMap; |
| 27 |
| 28 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
| 29 var categories = WebInspector.TimelineUIUtils.categories(); |
| 30 |
| 31 var eventStyles = {}; |
| 32 eventStyles[recordTypes.Program] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("Other"), categories["other"]); |
| 33 eventStyles[recordTypes.EventDispatch] = new WebInspector.TimelineRecordStyl
e(WebInspector.UIString("Event"), categories["scripting"]); |
| 34 eventStyles[recordTypes.RequestMainThreadFrame] = new WebInspector.TimelineR
ecordStyle(WebInspector.UIString("Request Main Thread Frame"), categories["rende
ring"]); |
| 35 eventStyles[recordTypes.BeginFrame] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Frame Start"), categories["rendering"]); |
| 36 eventStyles[recordTypes.BeginMainThreadFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Frame Start (main thread)"), categories["renderi
ng"]); |
| 37 eventStyles[recordTypes.DrawFrame] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Draw Frame"), categories["rendering"]); |
| 38 eventStyles[recordTypes.ScheduleStyleRecalculation] = new WebInspector.Timel
ineRecordStyle(WebInspector.UIString("Schedule Style Recalculation"), categories
["rendering"]); |
| 39 eventStyles[recordTypes.RecalculateStyles] = new WebInspector.TimelineRecord
Style(WebInspector.UIString("Recalculate Style"), categories["rendering"]); |
| 40 eventStyles[recordTypes.InvalidateLayout] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Invalidate Layout"), categories["rendering"]); |
| 41 eventStyles[recordTypes.Layout] = new WebInspector.TimelineRecordStyle(WebIn
spector.UIString("Layout"), categories["rendering"]); |
| 42 eventStyles[recordTypes.PaintSetup] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint Setup"), categories["painting"]); |
| 43 eventStyles[recordTypes.Paint] = new WebInspector.TimelineRecordStyle(WebIns
pector.UIString("Paint"), categories["painting"]); |
| 44 eventStyles[recordTypes.Rasterize] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Paint"), categories["painting"]); |
| 45 eventStyles[recordTypes.RasterTask] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint"), categories["painting"]); |
| 46 eventStyles[recordTypes.ScrollLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Scroll"), categories["rendering"]); |
| 47 eventStyles[recordTypes.CompositeLayers] = new WebInspector.TimelineRecordSt
yle(WebInspector.UIString("Composite Layers"), categories["painting"]); |
| 48 eventStyles[recordTypes.ParseHTML] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Parse HTML"), categories["loading"]); |
| 49 eventStyles[recordTypes.TimerInstall] = new WebInspector.TimelineRecordStyle
(WebInspector.UIString("Install Timer"), categories["scripting"]); |
| 50 eventStyles[recordTypes.TimerRemove] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Remove Timer"), categories["scripting"]); |
| 51 eventStyles[recordTypes.TimerFire] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Timer Fired"), categories["scripting"]); |
| 52 eventStyles[recordTypes.XHRReadyStateChange] = new WebInspector.TimelineReco
rdStyle(WebInspector.UIString("XHR Ready State Change"), categories["scripting"]
); |
| 53 eventStyles[recordTypes.XHRLoad] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("XHR Load"), categories["scripting"]); |
| 54 eventStyles[recordTypes.EvaluateScript] = new WebInspector.TimelineRecordSty
le(WebInspector.UIString("Evaluate Script"), categories["scripting"]); |
| 55 eventStyles[recordTypes.MarkLoad] = new WebInspector.TimelineRecordStyle(Web
Inspector.UIString("Load event"), categories["scripting"]); |
| 56 eventStyles[recordTypes.MarkDOMContent] = new WebInspector.TimelineRecordSty
le(WebInspector.UIString("DOMContentLoaded event"), categories["scripting"]); |
| 57 eventStyles[recordTypes.MarkFirstPaint] = new WebInspector.TimelineRecordSty
le(WebInspector.UIString("First paint"), categories["painting"]); |
| 58 eventStyles[recordTypes.TimeStamp] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Stamp"), categories["scripting"]); |
| 59 eventStyles[recordTypes.ConsoleTime] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Console Time"), categories["scripting"]); |
| 60 eventStyles[recordTypes.ResourceSendRequest] = new WebInspector.TimelineReco
rdStyle(WebInspector.UIString("Send Request"), categories["loading"]); |
| 61 eventStyles[recordTypes.ResourceReceiveResponse] = new WebInspector.Timeline
RecordStyle(WebInspector.UIString("Receive Response"), categories["loading"]); |
| 62 eventStyles[recordTypes.ResourceFinish] = new WebInspector.TimelineRecordSty
le(WebInspector.UIString("Finish Loading"), categories["loading"]); |
| 63 eventStyles[recordTypes.ResourceReceivedData] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Receive Data"), categories["loading"]); |
| 64 eventStyles[recordTypes.FunctionCall] = new WebInspector.TimelineRecordStyle
(WebInspector.UIString("Function Call"), categories["scripting"]); |
| 65 eventStyles[recordTypes.GCEvent] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("GC Event"), categories["scripting"]); |
| 66 eventStyles[recordTypes.JSFrame] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("JS Frame"), categories["scripting"]); |
| 67 eventStyles[recordTypes.RequestAnimationFrame] = new WebInspector.TimelineRe
cordStyle(WebInspector.UIString("Request Animation Frame"), categories["scriptin
g"]); |
| 68 eventStyles[recordTypes.CancelAnimationFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Cancel Animation Frame"), categories["scripting"
]); |
| 69 eventStyles[recordTypes.FireAnimationFrame] = new WebInspector.TimelineRecor
dStyle(WebInspector.UIString("Animation Frame Fired"), categories["scripting"]); |
| 70 eventStyles[recordTypes.WebSocketCreate] = new WebInspector.TimelineRecordSt
yle(WebInspector.UIString("Create WebSocket"), categories["scripting"]); |
| 71 eventStyles[recordTypes.WebSocketSendHandshakeRequest] = new WebInspector.Ti
melineRecordStyle(WebInspector.UIString("Send WebSocket Handshake"), categories[
"scripting"]); |
| 72 eventStyles[recordTypes.WebSocketReceiveHandshakeResponse] = new WebInspecto
r.TimelineRecordStyle(WebInspector.UIString("Receive WebSocket Handshake"), cate
gories["scripting"]); |
| 73 eventStyles[recordTypes.WebSocketDestroy] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Destroy WebSocket"), categories["scripting"]); |
| 74 eventStyles[recordTypes.EmbedderCallback] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Embedder Callback"), categories["scripting"]); |
| 75 eventStyles[recordTypes.DecodeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Decode"), categories["painting"]); |
| 76 eventStyles[recordTypes.ResizeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Resize"), categories["painting"]); |
| 77 |
| 78 WebInspector.TracingTimelineUIUtils._eventStylesMap = eventStyles; |
| 79 return eventStyles; |
| 80 } |
| 81 |
| 82 /** |
| 83 * @param {!WebInspector.TracingModel.Event} event |
| 84 * @return {!{title: string, category: !WebInspector.TimelineCategory}} |
| 85 */ |
| 86 WebInspector.TracingTimelineUIUtils.eventStyle = function(event) |
| 87 { |
| 88 return WebInspector.TracingTimelineUIUtils.styleForTraceEvent(event.name); |
| 89 } |
| 90 |
| 91 /** |
| 92 * @param {string} name |
| 93 * @return {!{title: string, category: !WebInspector.TimelineCategory}} |
| 94 */ |
| 95 WebInspector.TracingTimelineUIUtils.styleForTraceEvent = function(name) |
| 96 { |
| 97 var eventStyles = WebInspector.TracingTimelineUIUtils._initEventStyles(); |
| 98 var result = eventStyles[name]; |
| 99 if (!result) { |
| 100 result = new WebInspector.TimelineRecordStyle(WebInspector.UIString("Unk
nown: %s", name), WebInspector.TimelineUIUtils.categories()["other"]); |
| 101 eventStyles[name] = result; |
| 102 } |
| 103 return result; |
| 104 } |
| 105 |
| 106 /** |
10 * @param {!WebInspector.TracingModel.Event} event | 107 * @param {!WebInspector.TracingModel.Event} event |
11 * @param {!WebInspector.Linkifier} linkifier | 108 * @param {!WebInspector.Linkifier} linkifier |
12 * @param {boolean} loadedFromFile | 109 * @param {boolean} loadedFromFile |
13 * @param {!WebInspector.Target} target | 110 * @param {!WebInspector.Target} target |
14 * @return {?Node} | 111 * @return {?Node} |
15 */ | 112 */ |
16 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve
nt, linkifier, loadedFromFile, target) | 113 WebInspector.TracingTimelineUIUtils.buildDetailsNodeForTraceEvent = function(eve
nt, linkifier, loadedFromFile, target) |
17 { | 114 { |
18 var recordType = WebInspector.TracingTimelineModel.RecordType; | 115 var recordType = WebInspector.TracingTimelineModel.RecordType; |
19 | 116 |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 * @param {?WebInspector.DOMNode} relatedNode | 301 * @param {?WebInspector.DOMNode} relatedNode |
205 * @param {boolean} loadedFromFile | 302 * @param {boolean} loadedFromFile |
206 * @param {!WebInspector.Target} target | 303 * @param {!WebInspector.Target} target |
207 * @return {!DocumentFragment} | 304 * @return {!DocumentFragment} |
208 */ | 305 */ |
209 WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSynchronously = funct
ion(event, model, linkifier, relatedNode, loadedFromFile, target) | 306 WebInspector.TracingTimelineUIUtils._buildTraceEventDetailsSynchronously = funct
ion(event, model, linkifier, relatedNode, loadedFromFile, target) |
210 { | 307 { |
211 var fragment = document.createDocumentFragment(); | 308 var fragment = document.createDocumentFragment(); |
212 var stats = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEven
t(model, event); | 309 var stats = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEven
t(model, event); |
213 var pieChart = stats.hasChildren ? | 310 var pieChart = stats.hasChildren ? |
214 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats, Web
Inspector.TimelineUIUtils.styleForTimelineEvent(event.name).category, event.self
Time / 1000) : | 311 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats, Web
Inspector.TracingTimelineUIUtils.styleForTraceEvent(event.name).category, event.
selfTime / 1000) : |
215 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats); | 312 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats); |
216 fragment.appendChild(pieChart); | 313 fragment.appendChild(pieChart); |
217 | 314 |
218 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 315 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
219 | 316 |
220 // The messages may vary per event.name; | 317 // The messages may vary per event.name; |
221 var callSiteStackTraceLabel; | 318 var callSiteStackTraceLabel; |
222 var callStackLabel; | 319 var callStackLabel; |
223 var relatedNodeLabel; | 320 var relatedNodeLabel; |
224 | 321 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 var endTime = event.endTime; | 484 var endTime = event.endTime; |
388 if (endTime) { | 485 if (endTime) { |
389 for (var i = index; i < events.length; i++) { | 486 for (var i = index; i < events.length; i++) { |
390 var nextEvent = events[i]; | 487 var nextEvent = events[i]; |
391 if (nextEvent.startTime >= endTime) | 488 if (nextEvent.startTime >= endTime) |
392 break; | 489 break; |
393 if (!nextEvent.selfTime) | 490 if (!nextEvent.selfTime) |
394 continue; | 491 continue; |
395 if (i > index) | 492 if (i > index) |
396 hasChildren = true; | 493 hasChildren = true; |
397 var category = WebInspector.TimelineUIUtils.styleForTimelineEvent(ne
xtEvent.name).category.name; | 494 var category = WebInspector.TracingTimelineUIUtils.styleForTraceEven
t(nextEvent.name).category.name; |
398 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextE
vent.selfTime / 1000; | 495 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextE
vent.selfTime / 1000; |
399 } | 496 } |
400 } | 497 } |
401 return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; | 498 return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; |
402 } | 499 } |
403 | 500 |
404 | 501 |
OLD | NEW |