| 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 } | 48 } |
| 49 | 49 |
| 50 /** | 50 /** |
| 51 * @return {!Object.<string, !WebInspector.TimelineRecordStyle>} | 51 * @return {!Object.<string, !WebInspector.TimelineRecordStyle>} |
| 52 */ | 52 */ |
| 53 WebInspector.TimelineUIUtils._initEventStyles = function() | 53 WebInspector.TimelineUIUtils._initEventStyles = function() |
| 54 { | 54 { |
| 55 if (WebInspector.TimelineUIUtils._eventStylesMap) | 55 if (WebInspector.TimelineUIUtils._eventStylesMap) |
| 56 return WebInspector.TimelineUIUtils._eventStylesMap; | 56 return WebInspector.TimelineUIUtils._eventStylesMap; |
| 57 | 57 |
| 58 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 58 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 59 var categories = WebInspector.TimelineUIUtils.categories(); | 59 var categories = WebInspector.TimelineUIUtils.categories(); |
| 60 | 60 |
| 61 var eventStyles = {}; | 61 var eventStyles = {}; |
| 62 eventStyles[recordTypes.Program] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("Other"), categories["other"]); | 62 eventStyles[recordTypes.Program] = new WebInspector.TimelineRecordStyle(WebI
nspector.UIString("Other"), categories["other"]); |
| 63 eventStyles[recordTypes.EventDispatch] = new WebInspector.TimelineRecordStyl
e(WebInspector.UIString("Event"), categories["scripting"]); | 63 eventStyles[recordTypes.EventDispatch] = new WebInspector.TimelineRecordStyl
e(WebInspector.UIString("Event"), categories["scripting"]); |
| 64 eventStyles[recordTypes.RequestMainThreadFrame] = new WebInspector.TimelineR
ecordStyle(WebInspector.UIString("Request Main Thread Frame"), categories["rende
ring"], true); | 64 eventStyles[recordTypes.RequestMainThreadFrame] = new WebInspector.TimelineR
ecordStyle(WebInspector.UIString("Request Main Thread Frame"), categories["rende
ring"], true); |
| 65 eventStyles[recordTypes.BeginFrame] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Frame Start"), categories["rendering"], true); | 65 eventStyles[recordTypes.BeginFrame] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Frame Start"), categories["rendering"], true); |
| 66 eventStyles[recordTypes.BeginMainThreadFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Frame Start (main thread)"), categories["renderi
ng"], true); | 66 eventStyles[recordTypes.BeginMainThreadFrame] = new WebInspector.TimelineRec
ordStyle(WebInspector.UIString("Frame Start (main thread)"), categories["renderi
ng"], true); |
| 67 eventStyles[recordTypes.DrawFrame] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Draw Frame"), categories["rendering"], true); | 67 eventStyles[recordTypes.DrawFrame] = new WebInspector.TimelineRecordStyle(We
bInspector.UIString("Draw Frame"), categories["rendering"], true); |
| 68 eventStyles[recordTypes.ScheduleStyleRecalculation] = new WebInspector.Timel
ineRecordStyle(WebInspector.UIString("Schedule Style Recalculation"), categories
["rendering"], true); | 68 eventStyles[recordTypes.ScheduleStyleRecalculation] = new WebInspector.Timel
ineRecordStyle(WebInspector.UIString("Schedule Style Recalculation"), categories
["rendering"], true); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 eventStyles[recordTypes.WebSocketReceiveHandshakeResponse] = new WebInspecto
r.TimelineRecordStyle(WebInspector.UIString("Receive WebSocket Handshake"), cate
gories["scripting"]); | 103 eventStyles[recordTypes.WebSocketReceiveHandshakeResponse] = new WebInspecto
r.TimelineRecordStyle(WebInspector.UIString("Receive WebSocket Handshake"), cate
gories["scripting"]); |
| 104 eventStyles[recordTypes.WebSocketDestroy] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Destroy WebSocket"), categories["scripting"]); | 104 eventStyles[recordTypes.WebSocketDestroy] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Destroy WebSocket"), categories["scripting"]); |
| 105 eventStyles[recordTypes.EmbedderCallback] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Embedder Callback"), categories["scripting"]); | 105 eventStyles[recordTypes.EmbedderCallback] = new WebInspector.TimelineRecordS
tyle(WebInspector.UIString("Embedder Callback"), categories["scripting"]); |
| 106 eventStyles[recordTypes.DecodeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Decode"), categories["painting"]); | 106 eventStyles[recordTypes.DecodeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Decode"), categories["painting"]); |
| 107 eventStyles[recordTypes.ResizeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Resize"), categories["painting"]); | 107 eventStyles[recordTypes.ResizeImage] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Image Resize"), categories["painting"]); |
| 108 WebInspector.TimelineUIUtils._eventStylesMap = eventStyles; | 108 WebInspector.TimelineUIUtils._eventStylesMap = eventStyles; |
| 109 return eventStyles; | 109 return eventStyles; |
| 110 } | 110 } |
| 111 | 111 |
| 112 WebInspector.TimelineUIUtils._coalescableRecordTypes = {}; | 112 WebInspector.TimelineUIUtils._coalescableRecordTypes = {}; |
| 113 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TracingTimelin
eModel.RecordType.Layout] = 1; | 113 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TimelineModel.
RecordType.Layout] = 1; |
| 114 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TracingTimelin
eModel.RecordType.Paint] = 1; | 114 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TimelineModel.
RecordType.Paint] = 1; |
| 115 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TracingTimelin
eModel.RecordType.RasterTask] = 1; | 115 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TimelineModel.
RecordType.RasterTask] = 1; |
| 116 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TracingTimelin
eModel.RecordType.DecodeImage] = 1; | 116 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TimelineModel.
RecordType.DecodeImage] = 1; |
| 117 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TracingTimelin
eModel.RecordType.ResizeImage] = 1; | 117 WebInspector.TimelineUIUtils._coalescableRecordTypes[WebInspector.TimelineModel.
RecordType.ResizeImage] = 1; |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * @param {string} recordType | 120 * @param {string} recordType |
| 121 * @return {boolean} | 121 * @return {boolean} |
| 122 */ | 122 */ |
| 123 WebInspector.TimelineUIUtils.isCoalescable = function(recordType) | 123 WebInspector.TimelineUIUtils.isCoalescable = function(recordType) |
| 124 { | 124 { |
| 125 return !!WebInspector.TimelineUIUtils._coalescableRecordTypes[recordType]; | 125 return !!WebInspector.TimelineUIUtils._coalescableRecordTypes[recordType]; |
| 126 } | 126 } |
| 127 | 127 |
| 128 /** | 128 /** |
| 129 * @param {!WebInspector.TimelineModel.Record} record | 129 * @param {!WebInspector.TimelineModel.Record} record |
| 130 * @return {?Object} | 130 * @return {?Object} |
| 131 */ | 131 */ |
| 132 WebInspector.TimelineUIUtils.isCoalescable.countersForRecord = function(record) | 132 WebInspector.TimelineUIUtils.isCoalescable.countersForRecord = function(record) |
| 133 { | 133 { |
| 134 return record.type() === WebInspector.TracingTimelineModel.RecordType.Update
Counters ? record.data() : null; | 134 return record.type() === WebInspector.TimelineModel.RecordType.UpdateCounter
s ? record.data() : null; |
| 135 } | 135 } |
| 136 | 136 |
| 137 /** | 137 /** |
| 138 * @param {!WebInspector.TimelineModel.Record} record | 138 * @param {!WebInspector.TimelineModel.Record} record |
| 139 * @param {!RegExp} regExp | 139 * @param {!RegExp} regExp |
| 140 * @return {boolean} | 140 * @return {boolean} |
| 141 */ | 141 */ |
| 142 WebInspector.TimelineUIUtils.testContentMatching = function(record, regExp) | 142 WebInspector.TimelineUIUtils.testContentMatching = function(record, regExp) |
| 143 { | 143 { |
| 144 var traceEvent = record.traceEvent(); | 144 var traceEvent = record.traceEvent(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 WebInspector.TimelineUIUtils.markerEventColor = function(event) | 186 WebInspector.TimelineUIUtils.markerEventColor = function(event) |
| 187 { | 187 { |
| 188 var red = "rgb(255, 0, 0)"; | 188 var red = "rgb(255, 0, 0)"; |
| 189 var blue = "rgb(0, 0, 255)"; | 189 var blue = "rgb(0, 0, 255)"; |
| 190 var orange = "rgb(255, 178, 23)"; | 190 var orange = "rgb(255, 178, 23)"; |
| 191 var green = "rgb(0, 130, 0)"; | 191 var green = "rgb(0, 130, 0)"; |
| 192 | 192 |
| 193 if (event.category === WebInspector.TracingModel.ConsoleEventCategory) | 193 if (event.category === WebInspector.TracingModel.ConsoleEventCategory) |
| 194 return orange; | 194 return orange; |
| 195 | 195 |
| 196 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 196 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 197 var eventName = event.name; | 197 var eventName = event.name; |
| 198 switch (eventName) { | 198 switch (eventName) { |
| 199 case recordTypes.MarkDOMContent: return blue; | 199 case recordTypes.MarkDOMContent: return blue; |
| 200 case recordTypes.MarkLoad: return red; | 200 case recordTypes.MarkLoad: return red; |
| 201 case recordTypes.MarkFirstPaint: return green; | 201 case recordTypes.MarkFirstPaint: return green; |
| 202 case recordTypes.TimeStamp: return orange; | 202 case recordTypes.TimeStamp: return orange; |
| 203 } | 203 } |
| 204 return green; | 204 return green; |
| 205 } | 205 } |
| 206 | 206 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 217 /** | 217 /** |
| 218 * @param {!WebInspector.TracingModel.Event} event | 218 * @param {!WebInspector.TracingModel.Event} event |
| 219 * @param {!WebInspector.TimelineModel} model | 219 * @param {!WebInspector.TimelineModel} model |
| 220 * @return {string} | 220 * @return {string} |
| 221 */ | 221 */ |
| 222 WebInspector.TimelineUIUtils.eventTitle = function(event, model) | 222 WebInspector.TimelineUIUtils.eventTitle = function(event, model) |
| 223 { | 223 { |
| 224 var title = WebInspector.TimelineUIUtils.eventStyle(event).title; | 224 var title = WebInspector.TimelineUIUtils.eventStyle(event).title; |
| 225 if (event.category === WebInspector.TracingModel.ConsoleEventCategory) | 225 if (event.category === WebInspector.TracingModel.ConsoleEventCategory) |
| 226 return title; | 226 return title; |
| 227 if (event.name === WebInspector.TracingTimelineModel.RecordType.TimeStamp) | 227 if (event.name === WebInspector.TimelineModel.RecordType.TimeStamp) |
| 228 return WebInspector.UIString("%s: %s", title, event.args["data"]["messag
e"]); | 228 return WebInspector.UIString("%s: %s", title, event.args["data"]["messag
e"]); |
| 229 if (WebInspector.TimelineUIUtils.isMarkerEvent(event)) { | 229 if (WebInspector.TimelineUIUtils.isMarkerEvent(event)) { |
| 230 var startTime = Number.millisToString(event.startTime - model.minimumRec
ordTime()); | 230 var startTime = Number.millisToString(event.startTime - model.minimumRec
ordTime()); |
| 231 return WebInspector.UIString("%s at %s", title, startTime); | 231 return WebInspector.UIString("%s at %s", title, startTime); |
| 232 } | 232 } |
| 233 return title; | 233 return title; |
| 234 } | 234 } |
| 235 | 235 |
| 236 /** | 236 /** |
| 237 * @param {!WebInspector.TracingModel.Event} event | 237 * @param {!WebInspector.TracingModel.Event} event |
| 238 * @return {boolean} | 238 * @return {boolean} |
| 239 */ | 239 */ |
| 240 WebInspector.TimelineUIUtils.isMarkerEvent = function(event) | 240 WebInspector.TimelineUIUtils.isMarkerEvent = function(event) |
| 241 { | 241 { |
| 242 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 242 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 243 switch (event.name) { | 243 switch (event.name) { |
| 244 case recordTypes.TimeStamp: | 244 case recordTypes.TimeStamp: |
| 245 case recordTypes.MarkFirstPaint: | 245 case recordTypes.MarkFirstPaint: |
| 246 return true; | 246 return true; |
| 247 case recordTypes.MarkDOMContent: | 247 case recordTypes.MarkDOMContent: |
| 248 case recordTypes.MarkLoad: | 248 case recordTypes.MarkLoad: |
| 249 return event.args["data"]["isMainFrame"]; | 249 return event.args["data"]["isMainFrame"]; |
| 250 default: | 250 default: |
| 251 return false; | 251 return false; |
| 252 } | 252 } |
| 253 } | 253 } |
| 254 | 254 |
| 255 /** | 255 /** |
| 256 * @param {!WebInspector.TracingModel.Event} event | 256 * @param {!WebInspector.TracingModel.Event} event |
| 257 * @return {boolean} | 257 * @return {boolean} |
| 258 */ | 258 */ |
| 259 WebInspector.TimelineUIUtils.isTallMarkerEvent = function(event) | 259 WebInspector.TimelineUIUtils.isTallMarkerEvent = function(event) |
| 260 { | 260 { |
| 261 return event.name !== WebInspector.TracingTimelineModel.RecordType.TimeStamp
; | 261 return event.name !== WebInspector.TimelineModel.RecordType.TimeStamp; |
| 262 } | 262 } |
| 263 | 263 |
| 264 /** | 264 /** |
| 265 * @param {!WebInspector.TracingModel.Event} event | 265 * @param {!WebInspector.TracingModel.Event} event |
| 266 * @param {!WebInspector.Linkifier} linkifier | 266 * @param {!WebInspector.Linkifier} linkifier |
| 267 * @return {?Node} | 267 * @return {?Node} |
| 268 */ | 268 */ |
| 269 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, lin
kifier) | 269 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, lin
kifier) |
| 270 { | 270 { |
| 271 var recordType = WebInspector.TracingTimelineModel.RecordType; | 271 var recordType = WebInspector.TimelineModel.RecordType; |
| 272 var target = event.thread.target(); | 272 var target = event.thread.target(); |
| 273 var details; | 273 var details; |
| 274 var detailsText; | 274 var detailsText; |
| 275 var eventData = event.args["data"]; | 275 var eventData = event.args["data"]; |
| 276 switch (event.name) { | 276 switch (event.name) { |
| 277 case recordType.GCEvent: | 277 case recordType.GCEvent: |
| 278 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; | 278 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; |
| 279 detailsText = WebInspector.UIString("%s collected", Number.bytesToString
(delta)); | 279 detailsText = WebInspector.UIString("%s collected", Number.bytesToString
(delta)); |
| 280 break; | 280 break; |
| 281 case recordType.TimerFire: | 281 case recordType.TimerFire: |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 390 stackTrace = initiator.stackTrace; | 390 stackTrace = initiator.stackTrace; |
| 391 } | 391 } |
| 392 if (!stackTrace || !stackTrace.length) | 392 if (!stackTrace || !stackTrace.length) |
| 393 return null; | 393 return null; |
| 394 return linkifier.linkifyConsoleCallFrame(target, stackTrace[0], "timelin
e-details"); | 394 return linkifier.linkifyConsoleCallFrame(target, stackTrace[0], "timelin
e-details"); |
| 395 } | 395 } |
| 396 } | 396 } |
| 397 | 397 |
| 398 /** | 398 /** |
| 399 * @param {!WebInspector.TracingModel.Event} event | 399 * @param {!WebInspector.TracingModel.Event} event |
| 400 * @param {!WebInspector.TracingTimelineModel} model | 400 * @param {!WebInspector.TimelineModel} model |
| 401 * @param {!WebInspector.Linkifier} linkifier | 401 * @param {!WebInspector.Linkifier} linkifier |
| 402 * @param {function(!DocumentFragment)} callback | 402 * @param {function(!DocumentFragment)} callback |
| 403 */ | 403 */ |
| 404 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin
kifier, callback) | 404 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin
kifier, callback) |
| 405 { | 405 { |
| 406 var target = event.thread.target(); | 406 var target = event.thread.target(); |
| 407 var relatedNode = null; | 407 var relatedNode = null; |
| 408 var barrier = new CallbackBarrier(); | 408 var barrier = new CallbackBarrier(); |
| 409 if (!event.previewElement) { | 409 if (!event.previewElement) { |
| 410 if (event.imageURL && target) | 410 if (event.imageURL && target) |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 } | 462 } |
| 463 | 463 |
| 464 function callbackWrapper() | 464 function callbackWrapper() |
| 465 { | 465 { |
| 466 callback(WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronous
ly(event, model, linkifier, relatedNode)); | 466 callback(WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronous
ly(event, model, linkifier, relatedNode)); |
| 467 } | 467 } |
| 468 } | 468 } |
| 469 | 469 |
| 470 /** | 470 /** |
| 471 * @param {!WebInspector.TracingModel.Event} event | 471 * @param {!WebInspector.TracingModel.Event} event |
| 472 * @param {!WebInspector.TracingTimelineModel} model | 472 * @param {!WebInspector.TimelineModel} model |
| 473 * @param {!WebInspector.Linkifier} linkifier | 473 * @param {!WebInspector.Linkifier} linkifier |
| 474 * @param {?WebInspector.DOMNode} relatedNode | 474 * @param {?WebInspector.DOMNode} relatedNode |
| 475 * @return {!DocumentFragment} | 475 * @return {!DocumentFragment} |
| 476 */ | 476 */ |
| 477 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
nt, model, linkifier, relatedNode) | 477 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve
nt, model, linkifier, relatedNode) |
| 478 { | 478 { |
| 479 var fragment = createDocumentFragment(); | 479 var fragment = createDocumentFragment(); |
| 480 var stats = {}; | 480 var stats = {}; |
| 481 var hasChildren = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent
(stats, model, event); | 481 var hasChildren = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent
(stats, model, event); |
| 482 | 482 |
| 483 var selfTime = event.selfTime; | 483 var selfTime = event.selfTime; |
| 484 var selfCategory = WebInspector.TimelineUIUtils.eventStyle(event).category; | 484 var selfCategory = WebInspector.TimelineUIUtils.eventStyle(event).category; |
| 485 // JSFrame events have 0 selfTime so we need to work around this below and a
dd the event's time to scripting category. | 485 // JSFrame events have 0 selfTime so we need to work around this below and a
dd the event's time to scripting category. |
| 486 if (event.name === WebInspector.TracingTimelineModel.RecordType.JSFrame && !
event.selfTime && event.duration) { | 486 if (event.name === WebInspector.TimelineModel.RecordType.JSFrame && !event.s
elfTime && event.duration) { |
| 487 selfTime = event.duration; | 487 selfTime = event.duration; |
| 488 for (var categoryName in stats) | 488 for (var categoryName in stats) |
| 489 selfTime -= stats[categoryName]; | 489 selfTime -= stats[categoryName]; |
| 490 stats[selfCategory.name] = selfTime + (stats[selfCategory.name] || 0); | 490 stats[selfCategory.name] = selfTime + (stats[selfCategory.name] || 0); |
| 491 } | 491 } |
| 492 | 492 |
| 493 var pieChart = hasChildren ? | 493 var pieChart = hasChildren ? |
| 494 WebInspector.TimelineUIUtils.generatePieChart(stats, selfCategory, selfT
ime) : | 494 WebInspector.TimelineUIUtils.generatePieChart(stats, selfCategory, selfT
ime) : |
| 495 WebInspector.TimelineUIUtils.generatePieChart(stats); | 495 WebInspector.TimelineUIUtils.generatePieChart(stats); |
| 496 | 496 |
| 497 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 497 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 498 | 498 |
| 499 // This message may vary per event.name; | 499 // This message may vary per event.name; |
| 500 var relatedNodeLabel; | 500 var relatedNodeLabel; |
| 501 | 501 |
| 502 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre
ad.target(), linkifier, true); | 502 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre
ad.target(), linkifier, true); |
| 503 contentHelper.appendTextRow(WebInspector.UIString("Type"), WebInspector.Time
lineUIUtils.eventTitle(event, model)); | 503 contentHelper.appendTextRow(WebInspector.UIString("Type"), WebInspector.Time
lineUIUtils.eventTitle(event, model)); |
| 504 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli
sToString(event.selfTime, true)); | 504 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli
sToString(event.selfTime, true)); |
| 505 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill
isToString((event.startTime - model.minimumRecordTime()))); | 505 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill
isToString((event.startTime - model.minimumRecordTime()))); |
| 506 contentHelper.appendElementRow(WebInspector.UIString("Aggregated Time"), pie
Chart); | 506 contentHelper.appendElementRow(WebInspector.UIString("Aggregated Time"), pie
Chart); |
| 507 var eventData = event.args["data"]; | 507 var eventData = event.args["data"]; |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 | 629 |
| 630 return fragment; | 630 return fragment; |
| 631 } | 631 } |
| 632 | 632 |
| 633 /** | 633 /** |
| 634 * @param {!WebInspector.TracingModel.Event} event | 634 * @param {!WebInspector.TracingModel.Event} event |
| 635 * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper | 635 * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper |
| 636 */ | 636 */ |
| 637 WebInspector.TimelineUIUtils._generateCauses = function(event, contentHelper) | 637 WebInspector.TimelineUIUtils._generateCauses = function(event, contentHelper) |
| 638 { | 638 { |
| 639 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 639 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 640 | 640 |
| 641 var callSiteStackLabel; | 641 var callSiteStackLabel; |
| 642 var stackLabel; | 642 var stackLabel; |
| 643 var initiator = event.initiator; | 643 var initiator = event.initiator; |
| 644 | 644 |
| 645 switch (event.name) { | 645 switch (event.name) { |
| 646 case recordTypes.TimerFire: | 646 case recordTypes.TimerFire: |
| 647 callSiteStackLabel = WebInspector.UIString("Timer installed"); | 647 callSiteStackLabel = WebInspector.UIString("Timer installed"); |
| 648 break; | 648 break; |
| 649 case recordTypes.FireAnimationFrame: | 649 case recordTypes.FireAnimationFrame: |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 /** | 697 /** |
| 698 * @param {string} type | 698 * @param {string} type |
| 699 * @param {?WebInspector.Target} target | 699 * @param {?WebInspector.Target} target |
| 700 * @param {!Object} invalidationEvents | 700 * @param {!Object} invalidationEvents |
| 701 * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper | 701 * @param {!WebInspector.TimelineDetailsContentHelper} contentHelper |
| 702 */ | 702 */ |
| 703 WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
et, invalidationEvents, contentHelper) | 703 WebInspector.TimelineUIUtils._generateInvalidationsForType = function(type, targ
et, invalidationEvents, contentHelper) |
| 704 { | 704 { |
| 705 var title; | 705 var title; |
| 706 switch (type) { | 706 switch (type) { |
| 707 case WebInspector.TracingTimelineModel.RecordType.StyleRecalcInvalidationTra
cking: | 707 case WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking: |
| 708 title = WebInspector.UIString("Style invalidations"); | 708 title = WebInspector.UIString("Style invalidations"); |
| 709 break; | 709 break; |
| 710 case WebInspector.TracingTimelineModel.RecordType.LayoutInvalidationTracking
: | 710 case WebInspector.TimelineModel.RecordType.LayoutInvalidationTracking: |
| 711 title = WebInspector.UIString("Layout invalidations"); | 711 title = WebInspector.UIString("Layout invalidations"); |
| 712 break; | 712 break; |
| 713 default: | 713 default: |
| 714 title = WebInspector.UIString("Other invalidations"); | 714 title = WebInspector.UIString("Other invalidations"); |
| 715 break; | 715 break; |
| 716 } | 716 } |
| 717 | 717 |
| 718 var detailsNode = createElementWithClass("div", "timeline-details-view-row")
; | 718 var detailsNode = createElementWithClass("div", "timeline-details-view-row")
; |
| 719 var titleElement = detailsNode.createChild("span", "timeline-details-view-ro
w-title"); | 719 var titleElement = detailsNode.createChild("span", "timeline-details-view-ro
w-title"); |
| 720 titleElement.textContent = WebInspector.UIString("%s: ", title); | 720 titleElement.textContent = WebInspector.UIString("%s: ", title); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 773 }); | 773 }); |
| 774 } | 774 } |
| 775 | 775 |
| 776 /** | 776 /** |
| 777 * @param {!Object} total | 777 * @param {!Object} total |
| 778 * @param {!WebInspector.TimelineModel.Record} record | 778 * @param {!WebInspector.TimelineModel.Record} record |
| 779 */ | 779 */ |
| 780 WebInspector.TimelineUIUtils.aggregateTimeForRecord = function(total, record) | 780 WebInspector.TimelineUIUtils.aggregateTimeForRecord = function(total, record) |
| 781 { | 781 { |
| 782 var traceEvent = record.traceEvent(); | 782 var traceEvent = record.traceEvent(); |
| 783 var model = record._model; | 783 var model = record.timelineModel(); |
| 784 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(total, model, tra
ceEvent); | 784 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(total, model, tra
ceEvent); |
| 785 } | 785 } |
| 786 | 786 |
| 787 /** | 787 /** |
| 788 * @param {!Object} total | 788 * @param {!Object} total |
| 789 * @param {!WebInspector.TracingTimelineModel} model | 789 * @param {!WebInspector.TimelineModel} model |
| 790 * @param {!WebInspector.TracingModel.Event} event | 790 * @param {!WebInspector.TracingModel.Event} event |
| 791 * @return {boolean} | 791 * @return {boolean} |
| 792 */ | 792 */ |
| 793 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(total, mod
el, event) | 793 WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent = function(total, mod
el, event) |
| 794 { | 794 { |
| 795 var events = model.inspectedTargetEvents(); | 795 var events = model.inspectedTargetEvents(); |
| 796 /** | 796 /** |
| 797 * @param {number} startTime | 797 * @param {number} startTime |
| 798 * @param {!WebInspector.TracingModel.Event} e | 798 * @param {!WebInspector.TracingModel.Event} e |
| 799 * @return {number} | 799 * @return {number} |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 873 | 873 |
| 874 /** | 874 /** |
| 875 * @param {string} recordType | 875 * @param {string} recordType |
| 876 * @param {string=} title | 876 * @param {string=} title |
| 877 * @return {!Element} | 877 * @return {!Element} |
| 878 */ | 878 */ |
| 879 WebInspector.TimelineUIUtils.createEventDivider = function(recordType, title) | 879 WebInspector.TimelineUIUtils.createEventDivider = function(recordType, title) |
| 880 { | 880 { |
| 881 var eventDivider = createElement("div"); | 881 var eventDivider = createElement("div"); |
| 882 eventDivider.className = "resources-event-divider"; | 882 eventDivider.className = "resources-event-divider"; |
| 883 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 883 var recordTypes = WebInspector.TimelineModel.RecordType; |
| 884 | 884 |
| 885 if (recordType === recordTypes.MarkDOMContent) | 885 if (recordType === recordTypes.MarkDOMContent) |
| 886 eventDivider.className += " resources-blue-divider"; | 886 eventDivider.className += " resources-blue-divider"; |
| 887 else if (recordType === recordTypes.MarkLoad) | 887 else if (recordType === recordTypes.MarkLoad) |
| 888 eventDivider.className += " resources-red-divider"; | 888 eventDivider.className += " resources-red-divider"; |
| 889 else if (recordType === recordTypes.MarkFirstPaint) | 889 else if (recordType === recordTypes.MarkFirstPaint) |
| 890 eventDivider.className += " resources-green-divider"; | 890 eventDivider.className += " resources-green-divider"; |
| 891 else if (recordType === recordTypes.TimeStamp || recordType === recordTypes.
ConsoleTime) | 891 else if (recordType === recordTypes.TimeStamp || recordType === recordTypes.
ConsoleTime) |
| 892 eventDivider.className += " resources-orange-divider"; | 892 eventDivider.className += " resources-orange-divider"; |
| 893 else if (recordType === recordTypes.BeginFrame) | 893 else if (recordType === recordTypes.BeginFrame) |
| (...skipping 21 matching lines...) Expand all Loading... |
| 915 var eventStyles = WebInspector.TimelineUIUtils._initEventStyles(); | 915 var eventStyles = WebInspector.TimelineUIUtils._initEventStyles(); |
| 916 var result = []; | 916 var result = []; |
| 917 for (var name in eventStyles) { | 917 for (var name in eventStyles) { |
| 918 if (!eventStyles[name].hidden) | 918 if (!eventStyles[name].hidden) |
| 919 result.push(name); | 919 result.push(name); |
| 920 } | 920 } |
| 921 return result; | 921 return result; |
| 922 } | 922 } |
| 923 | 923 |
| 924 /** | 924 /** |
| 925 * @return {!WebInspector.TracingTimelineModel.Filter} | 925 * @return {!WebInspector.TraceEventFilter} |
| 926 */ | 926 */ |
| 927 WebInspector.TimelineUIUtils.hiddenEventsFilter = function() | 927 WebInspector.TimelineUIUtils.hiddenEventsFilter = function() |
| 928 { | 928 { |
| 929 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns
pector.TimelineUIUtils._visibleTypes()); | 929 return new WebInspector.InclusiveTraceEventNameFilter(WebInspector.TimelineU
IUtils._visibleTypes()); |
| 930 } | 930 } |
| 931 | 931 |
| 932 /** | 932 /** |
| 933 * @return {!Object.<string, !WebInspector.TimelineCategory>} | 933 * @return {!Object.<string, !WebInspector.TimelineCategory>} |
| 934 */ | 934 */ |
| 935 WebInspector.TimelineUIUtils.categories = function() | 935 WebInspector.TimelineUIUtils.categories = function() |
| 936 { | 936 { |
| 937 if (WebInspector.TimelineUIUtils._categories) | 937 if (WebInspector.TimelineUIUtils._categories) |
| 938 return WebInspector.TimelineUIUtils._categories; | 938 return WebInspector.TimelineUIUtils._categories; |
| 939 WebInspector.TimelineUIUtils._categories = { | 939 WebInspector.TimelineUIUtils._categories = { |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1320 for (var i = 0; i < stackTrace.length; ++i) { | 1320 for (var i = 0; i < stackTrace.length; ++i) { |
| 1321 var stackFrame = stackTrace[i]; | 1321 var stackFrame = stackTrace[i]; |
| 1322 var row = stackTraceElement.createChild("div"); | 1322 var row = stackTraceElement.createChild("div"); |
| 1323 row.createTextChild(stackFrame.functionName || WebInspector.UIString
("(anonymous function)")); | 1323 row.createTextChild(stackFrame.functionName || WebInspector.UIString
("(anonymous function)")); |
| 1324 row.createTextChild(" @ "); | 1324 row.createTextChild(" @ "); |
| 1325 var urlElement = this._linkifier.linkifyScriptLocation(this._target,
stackFrame.scriptId, stackFrame.url, stackFrame.lineNumber - 1, stackFrame.colu
mnNumber - 1); | 1325 var urlElement = this._linkifier.linkifyScriptLocation(this._target,
stackFrame.scriptId, stackFrame.url, stackFrame.lineNumber - 1, stackFrame.colu
mnNumber - 1); |
| 1326 row.appendChild(urlElement); | 1326 row.appendChild(urlElement); |
| 1327 } | 1327 } |
| 1328 } | 1328 } |
| 1329 } | 1329 } |
| OLD | NEW |