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 | 10 * @constructor |
(...skipping 22 matching lines...) Expand all Loading... |
33 eventStyles[recordTypes.EventDispatch] = new WebInspector.TimelineRecordStyl
e(WebInspector.UIString("Event"), categories["scripting"]); | 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"]); | 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"]); | 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"]); | 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"]); | 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"]); | 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"]); | 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"]); | 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"]); | 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"]); | 42 eventStyles[recordTypes.PaintSetup] = new WebInspector.TimelineRecordStyle(W
ebInspector.UIString("Paint Setup"), categories["painting"]); |
| 43 eventStyles[recordTypes.UpdateLayer] = new WebInspector.TimelineRecordStyle(
WebInspector.UIString("Update Layer"), categories["painting"]); |
43 eventStyles[recordTypes.Paint] = new WebInspector.TimelineRecordStyle(WebIns
pector.UIString("Paint"), categories["painting"]); | 44 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.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.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.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.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.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.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.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.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.XHRReadyStateChange] = new WebInspector.TimelineReco
rdStyle(WebInspector.UIString("XHR Ready State Change"), categories["scripting"]
); |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 * @param {!WebInspector.TracingTimelineModel} model | 259 * @param {!WebInspector.TracingTimelineModel} model |
259 * @param {!WebInspector.Linkifier} linkifier | 260 * @param {!WebInspector.Linkifier} linkifier |
260 * @param {function(!DocumentFragment)} callback | 261 * @param {function(!DocumentFragment)} callback |
261 * @param {boolean} loadedFromFile | 262 * @param {boolean} loadedFromFile |
262 * @param {!WebInspector.Target} target | 263 * @param {!WebInspector.Target} target |
263 */ | 264 */ |
264 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod
el, linkifier, callback, loadedFromFile, target) | 265 WebInspector.TracingTimelineUIUtils.buildTraceEventDetails = function(event, mod
el, linkifier, callback, loadedFromFile, target) |
265 { | 266 { |
266 var relatedNode = null; | 267 var relatedNode = null; |
267 var barrier = new CallbackBarrier(); | 268 var barrier = new CallbackBarrier(); |
268 if (event.imageURL && !event.previewElement) | 269 if (!event.previewElement) { |
269 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, even
t.imageURL, false, barrier.createCallback(saveImage)); | 270 if (event.imageURL) |
| 271 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target,
event.imageURL, false, barrier.createCallback(saveImage)); |
| 272 else if (event.picture) |
| 273 WebInspector.TracingTimelineUIUtils._buildPicturePreviewContent(even
t.picture, barrier.createCallback(saveImage)); |
| 274 } |
270 if (event.backendNodeId) | 275 if (event.backendNodeId) |
271 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b
arrier.createCallback(setRelatedNode)); | 276 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b
arrier.createCallback(setRelatedNode)); |
272 barrier.callWhenDone(callbackWrapper); | 277 barrier.callWhenDone(callbackWrapper); |
273 | 278 |
274 /** | 279 /** |
275 * @param {!Element=} element | 280 * @param {!Element=} element |
276 */ | 281 */ |
277 function saveImage(element) | 282 function saveImage(element) |
278 { | 283 { |
279 event.previewElement = element || null; | 284 event.previewElement = element || null; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 if (eventData["scriptName"]) | 355 if (eventData["scriptName"]) |
351 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e
ventData["scriptName"], eventData["scriptLine"]); | 356 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e
ventData["scriptName"], eventData["scriptLine"]); |
352 break; | 357 break; |
353 case recordTypes.ResourceSendRequest: | 358 case recordTypes.ResourceSendRequest: |
354 case recordTypes.ResourceReceiveResponse: | 359 case recordTypes.ResourceReceiveResponse: |
355 case recordTypes.ResourceReceivedData: | 360 case recordTypes.ResourceReceivedData: |
356 case recordTypes.ResourceFinish: | 361 case recordTypes.ResourceFinish: |
357 var url = (event.name === recordTypes.ResourceSendRequest) ? eventData["
url"] : initiator.args.data["url"]; | 362 var url = (event.name === recordTypes.ResourceSendRequest) ? eventData["
url"] : initiator.args.data["url"]; |
358 if (url) | 363 if (url) |
359 contentHelper.appendElementRow(WebInspector.UIString("Resource"), We
bInspector.linkifyResourceAsNode(url)); | 364 contentHelper.appendElementRow(WebInspector.UIString("Resource"), We
bInspector.linkifyResourceAsNode(url)); |
360 if (event.previewElement) | |
361 contentHelper.appendElementRow(WebInspector.UIString("Preview"), eve
nt.previewElement); | |
362 if (eventData["requestMethod"]) | 365 if (eventData["requestMethod"]) |
363 contentHelper.appendTextRow(WebInspector.UIString("Request Method"),
eventData["requestMethod"]); | 366 contentHelper.appendTextRow(WebInspector.UIString("Request Method"),
eventData["requestMethod"]); |
364 if (typeof eventData["statusCode"] === "number") | 367 if (typeof eventData["statusCode"] === "number") |
365 contentHelper.appendTextRow(WebInspector.UIString("Status Code"), ev
entData["statusCode"]); | 368 contentHelper.appendTextRow(WebInspector.UIString("Status Code"), ev
entData["statusCode"]); |
366 if (eventData["mimeType"]) | 369 if (eventData["mimeType"]) |
367 contentHelper.appendTextRow(WebInspector.UIString("MIME Type"), even
tData["mimeType"]); | 370 contentHelper.appendTextRow(WebInspector.UIString("MIME Type"), even
tData["mimeType"]); |
368 if (eventData["encodedDataLength"]) | 371 if (eventData["encodedDataLength"]) |
369 contentHelper.appendTextRow(WebInspector.UIString("Encoded Data Leng
th"), WebInspector.UIString("%d Bytes", eventData["encodedDataLength"])); | 372 contentHelper.appendTextRow(WebInspector.UIString("Encoded Data Leng
th"), WebInspector.UIString("%d Bytes", eventData["encodedDataLength"])); |
370 break; | 373 break; |
371 case recordTypes.EvaluateScript: | 374 case recordTypes.EvaluateScript: |
(...skipping 15 matching lines...) Expand all Loading... |
387 relatedNodeLabel = WebInspector.UIString("Layer root"); | 390 relatedNodeLabel = WebInspector.UIString("Layer root"); |
388 break; | 391 break; |
389 case recordTypes.PaintImage: | 392 case recordTypes.PaintImage: |
390 case recordTypes.DecodeLazyPixelRef: | 393 case recordTypes.DecodeLazyPixelRef: |
391 case recordTypes.DecodeImage: | 394 case recordTypes.DecodeImage: |
392 case recordTypes.ResizeImage: | 395 case recordTypes.ResizeImage: |
393 case recordTypes.DrawLazyPixelRef: | 396 case recordTypes.DrawLazyPixelRef: |
394 relatedNodeLabel = WebInspector.UIString("Image element"); | 397 relatedNodeLabel = WebInspector.UIString("Image element"); |
395 if (event.imageURL) | 398 if (event.imageURL) |
396 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W
ebInspector.linkifyResourceAsNode(event.imageURL)); | 399 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W
ebInspector.linkifyResourceAsNode(event.imageURL)); |
397 if (event.previewElement) | |
398 contentHelper.appendElementRow(WebInspector.UIString("Preview"), eve
nt.previewElement); | |
399 break; | 400 break; |
400 case recordTypes.RecalculateStyles: // We don't want to see default details. | 401 case recordTypes.RecalculateStyles: // We don't want to see default details. |
401 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"),
event.args["elementCount"]); | 402 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"),
event.args["elementCount"]); |
402 callStackLabel = WebInspector.UIString("Styles recalculation forced"); | 403 callStackLabel = WebInspector.UIString("Styles recalculation forced"); |
403 break; | 404 break; |
404 case recordTypes.Layout: | 405 case recordTypes.Layout: |
405 var beginData = event.args["beginData"]; | 406 var beginData = event.args["beginData"]; |
406 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou
t"), beginData["dirtyObjects"]); | 407 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou
t"), beginData["dirtyObjects"]); |
407 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b
eginData["totalObjects"]); | 408 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b
eginData["totalObjects"]); |
408 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), | 409 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 var eventStackTrace = event.stackTrace; | 451 var eventStackTrace = event.stackTrace; |
451 if (eventStackTrace) | 452 if (eventStackTrace) |
452 contentHelper.appendStackTrace(callStackLabel || WebInspector.UIString("
Call Stack"), eventStackTrace); | 453 contentHelper.appendStackTrace(callStackLabel || WebInspector.UIString("
Call Stack"), eventStackTrace); |
453 | 454 |
454 var warning = event.warning; | 455 var warning = event.warning; |
455 if (warning) { | 456 if (warning) { |
456 var div = document.createElement("div"); | 457 var div = document.createElement("div"); |
457 div.textContent = warning; | 458 div.textContent = warning; |
458 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); | 459 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); |
459 } | 460 } |
| 461 if (event.previewElement) |
| 462 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p
reviewElement); |
460 fragment.appendChild(contentHelper.element); | 463 fragment.appendChild(contentHelper.element); |
461 return fragment; | 464 return fragment; |
462 } | 465 } |
463 | 466 |
464 /** | 467 /** |
465 * @param {!WebInspector.TracingTimelineModel} model | 468 * @param {!WebInspector.TracingTimelineModel} model |
466 * @param {!WebInspector.TracingModel.Event} event | 469 * @param {!WebInspector.TracingModel.Event} event |
467 * @return {!{ aggregatedStats: !Object, hasChildren: boolean }} | 470 * @return {!{ aggregatedStats: !Object, hasChildren: boolean }} |
468 */ | 471 */ |
469 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(mod
el, event) | 472 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(mod
el, event) |
(...skipping 20 matching lines...) Expand all Loading... |
490 if (!nextEvent.selfTime) | 493 if (!nextEvent.selfTime) |
491 continue; | 494 continue; |
492 if (i > index) | 495 if (i > index) |
493 hasChildren = true; | 496 hasChildren = true; |
494 var category = WebInspector.TracingTimelineUIUtils.styleForTraceEven
t(nextEvent.name).category.name; | 497 var category = WebInspector.TracingTimelineUIUtils.styleForTraceEven
t(nextEvent.name).category.name; |
495 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextE
vent.selfTime; | 498 aggregatedStats[category] = (aggregatedStats[category] || 0) + nextE
vent.selfTime; |
496 } | 499 } |
497 } | 500 } |
498 return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; | 501 return { aggregatedStats: aggregatedStats, hasChildren: hasChildren }; |
499 } | 502 } |
| 503 |
| 504 /** |
| 505 * @param {string} encodedPicture |
| 506 * @param {function(!Element=)} callback |
| 507 */ |
| 508 WebInspector.TracingTimelineUIUtils._buildPicturePreviewContent = function(encod
edPicture, callback) |
| 509 { |
| 510 var snapshotId; |
| 511 |
| 512 LayerTreeAgent.loadSnapshot(encodedPicture, onSnapshotLoaded); |
| 513 /** |
| 514 * @param {string} error |
| 515 * @param {string} id |
| 516 */ |
| 517 function onSnapshotLoaded(error, id) |
| 518 { |
| 519 if (error) { |
| 520 console.error("LayerTreeAgent.loadSnapshot(): " + error); |
| 521 callback(); |
| 522 return; |
| 523 } |
| 524 snapshotId = id; |
| 525 LayerTreeAgent.replaySnapshot(snapshotId, onSnapshotReplayed); |
| 526 } |
| 527 |
| 528 /** |
| 529 * @param {string} error |
| 530 * @param {string} encodedBitmap |
| 531 */ |
| 532 function onSnapshotReplayed(error, encodedBitmap) |
| 533 { |
| 534 LayerTreeAgent.releaseSnapshot(snapshotId); |
| 535 if (error) { |
| 536 console.error("LayerTreeAgent.replaySnapshot(): " + error); |
| 537 callback(); |
| 538 return; |
| 539 } |
| 540 var container = document.createElement("div"); |
| 541 container.className = "image-preview-container"; |
| 542 var img = container.createChild("img"); |
| 543 img.src = encodedBitmap; |
| 544 callback(container); |
| 545 } |
| 546 } |
OLD | NEW |