| 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 * @param {!WebInspector.TracingModel} tracingModel | 7 * @param {!WebInspector.TracingModel} tracingModel |
| 8 * @param {!WebInspector.TimelineModel.Filter} recordFilter | 8 * @param {!WebInspector.TimelineModel.Filter} recordFilter |
| 9 * @extends {WebInspector.TimelineModel} | 9 * @extends {WebInspector.TimelineModel} |
| 10 */ | 10 */ |
| (...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 event.selfTime = duration; | 427 event.selfTime = duration; |
| 428 eventStack.push(event); | 428 eventStack.push(event); |
| 429 } | 429 } |
| 430 | 430 |
| 431 if (this._currentScriptEvent && event.startTime > this._currentScriptEve
nt.endTime) | 431 if (this._currentScriptEvent && event.startTime > this._currentScriptEve
nt.endTime) |
| 432 this._currentScriptEvent = null; | 432 this._currentScriptEvent = null; |
| 433 | 433 |
| 434 switch (event.name) { | 434 switch (event.name) { |
| 435 case recordTypes.CallStack: | 435 case recordTypes.CallStack: |
| 436 var lastMainThreadEvent = this.mainThreadEvents().peekLast(); | 436 var lastMainThreadEvent = this.mainThreadEvents().peekLast(); |
| 437 if (lastMainThreadEvent && event.args.stack && event.args.stack.leng
th) | 437 if (lastMainThreadEvent && event.args["stack"] && event.args["stack"
].length) |
| 438 lastMainThreadEvent.stackTrace = event.args.stack; | 438 lastMainThreadEvent.stackTrace = event.args["stack"]; |
| 439 break; | 439 break; |
| 440 | 440 |
| 441 case recordTypes.ResourceSendRequest: | 441 case recordTypes.ResourceSendRequest: |
| 442 this._sendRequestEvents[event.args.data["requestId"]] = event; | 442 this._sendRequestEvents[event.dataArg["requestId"]] = event; |
| 443 event.imageURL = event.args.data["url"]; | 443 event.imageURL = event.dataArg["url"]; |
| 444 break; | 444 break; |
| 445 | 445 |
| 446 case recordTypes.ResourceReceiveResponse: | 446 case recordTypes.ResourceReceiveResponse: |
| 447 case recordTypes.ResourceReceivedData: | 447 case recordTypes.ResourceReceivedData: |
| 448 case recordTypes.ResourceFinish: | 448 case recordTypes.ResourceFinish: |
| 449 event.initiator = this._sendRequestEvents[event.args.data["requestId
"]]; | 449 event.initiator = this._sendRequestEvents[event.dataArg["requestId"]
]; |
| 450 if (event.initiator) | 450 if (event.initiator) |
| 451 event.imageURL = event.initiator.imageURL; | 451 event.imageURL = event.initiator.imageURL; |
| 452 break; | 452 break; |
| 453 | 453 |
| 454 case recordTypes.TimerInstall: | 454 case recordTypes.TimerInstall: |
| 455 this._timerEvents[event.args.data["timerId"]] = event; | 455 this._timerEvents[event.dataArg["timerId"]] = event; |
| 456 break; | 456 break; |
| 457 | 457 |
| 458 case recordTypes.TimerFire: | 458 case recordTypes.TimerFire: |
| 459 event.initiator = this._timerEvents[event.args.data["timerId"]]; | 459 event.initiator = this._timerEvents[event.dataArg["timerId"]]; |
| 460 break; | 460 break; |
| 461 | 461 |
| 462 case recordTypes.RequestAnimationFrame: | 462 case recordTypes.RequestAnimationFrame: |
| 463 this._requestAnimationFrameEvents[event.args.data["id"]] = event; | 463 this._requestAnimationFrameEvents[event.dataArg["id"]] = event; |
| 464 break; | 464 break; |
| 465 | 465 |
| 466 case recordTypes.FireAnimationFrame: | 466 case recordTypes.FireAnimationFrame: |
| 467 event.initiator = this._requestAnimationFrameEvents[event.args.data[
"id"]]; | 467 event.initiator = this._requestAnimationFrameEvents[event.dataArg["i
d"]]; |
| 468 break; | 468 break; |
| 469 | 469 |
| 470 case recordTypes.ScheduleStyleRecalculation: | 470 case recordTypes.ScheduleStyleRecalculation: |
| 471 this._lastScheduleStyleRecalculation[event.args.frame] = event; | 471 this._lastScheduleStyleRecalculation[event.args["frame"]] = event; |
| 472 break; | 472 break; |
| 473 | 473 |
| 474 case recordTypes.RecalculateStyles: | 474 case recordTypes.RecalculateStyles: |
| 475 event.initiator = this._lastScheduleStyleRecalculation[event.args.fr
ame]; | 475 event.initiator = this._lastScheduleStyleRecalculation[event.args["f
rame"]]; |
| 476 this._lastRecalculateStylesEvent = event; | 476 this._lastRecalculateStylesEvent = event; |
| 477 break; | 477 break; |
| 478 | 478 |
| 479 case recordTypes.InvalidateLayout: | 479 case recordTypes.InvalidateLayout: |
| 480 // Consider style recalculation as a reason for layout invalidation, | 480 // Consider style recalculation as a reason for layout invalidation, |
| 481 // but only if we had no earlier layout invalidation records. | 481 // but only if we had no earlier layout invalidation records. |
| 482 var layoutInitator = event; | 482 var layoutInitator = event; |
| 483 var frameId = event.args.frame; | 483 var frameId = event.args["frame"]; |
| 484 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE
vent && this._lastRecalculateStylesEvent.endTime > event.startTime) | 484 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE
vent && this._lastRecalculateStylesEvent.endTime > event.startTime) |
| 485 layoutInitator = this._lastRecalculateStylesEvent.initiator; | 485 layoutInitator = this._lastRecalculateStylesEvent.initiator; |
| 486 this._layoutInvalidate[frameId] = layoutInitator; | 486 this._layoutInvalidate[frameId] = layoutInitator; |
| 487 break; | 487 break; |
| 488 | 488 |
| 489 case recordTypes.Layout: | 489 case recordTypes.Layout: |
| 490 var frameId = event.args["beginData"]["frame"]; | 490 var frameId = event.args["beginData"]["frame"]; |
| 491 event.initiator = this._layoutInvalidate[frameId]; | 491 event.initiator = this._layoutInvalidate[frameId]; |
| 492 event.backendNodeId = event.args["endData"]["rootNode"]; | 492 event.backendNodeId = event.args["endData"]["rootNode"]; |
| 493 event.highlightQuad = event.args["endData"]["root"]; | 493 event.highlightQuad = event.args["endData"]["root"]; |
| 494 this._layoutInvalidate[frameId] = null; | 494 this._layoutInvalidate[frameId] = null; |
| 495 if (this._currentScriptEvent) | 495 if (this._currentScriptEvent) |
| 496 event.warning = WebInspector.UIString("Forced synchronous layout
is a possible performance bottleneck."); | 496 event.warning = WebInspector.UIString("Forced synchronous layout
is a possible performance bottleneck."); |
| 497 break; | 497 break; |
| 498 | 498 |
| 499 case recordTypes.WebSocketCreate: | 499 case recordTypes.WebSocketCreate: |
| 500 this._webSocketCreateEvents[event.args.data["identifier"]] = event; | 500 this._webSocketCreateEvents[event.dataArg["identifier"]] = event; |
| 501 break; | 501 break; |
| 502 | 502 |
| 503 case recordTypes.WebSocketSendHandshakeRequest: | 503 case recordTypes.WebSocketSendHandshakeRequest: |
| 504 case recordTypes.WebSocketReceiveHandshakeResponse: | 504 case recordTypes.WebSocketReceiveHandshakeResponse: |
| 505 case recordTypes.WebSocketDestroy: | 505 case recordTypes.WebSocketDestroy: |
| 506 event.initiator = this._webSocketCreateEvents[event.args.data["ident
ifier"]]; | 506 event.initiator = this._webSocketCreateEvents[event.dataArg["identif
ier"]]; |
| 507 break; | 507 break; |
| 508 | 508 |
| 509 case recordTypes.EvaluateScript: | 509 case recordTypes.EvaluateScript: |
| 510 case recordTypes.FunctionCall: | 510 case recordTypes.FunctionCall: |
| 511 if (!this._currentScriptEvent) | 511 if (!this._currentScriptEvent) |
| 512 this._currentScriptEvent = event; | 512 this._currentScriptEvent = event; |
| 513 break; | 513 break; |
| 514 | 514 |
| 515 case recordTypes.SetLayerTreeId: | 515 case recordTypes.SetLayerTreeId: |
| 516 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; | 516 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; |
| 517 break; | 517 break; |
| 518 | 518 |
| 519 case recordTypes.Paint: | 519 case recordTypes.Paint: |
| 520 event.highlightQuad = event.args["data"]["clip"]; | 520 event.highlightQuad = event.dataArg["clip"]; |
| 521 event.backendNodeId = event.args["data"]["nodeId"]; | 521 event.backendNodeId = event.dataArg["nodeId"]; |
| 522 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay
er); | 522 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay
er); |
| 523 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th
is._inspectedTargetLayerTreeId) | 523 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th
is._inspectedTargetLayerTreeId) |
| 524 break; | 524 break; |
| 525 // Only keep layer paint events, skip paints for subframes that get
painted to the same layer as parent. | 525 // Only keep layer paint events, skip paints for subframes that get
painted to the same layer as parent. |
| 526 if (!event.args["data"]["layerId"]) | 526 if (!event.dataArg["layerId"]) |
| 527 break; | 527 break; |
| 528 this._lastPaintForLayer[layerUpdateEvent.args["layerId"]] = event; | 528 this._lastPaintForLayer[layerUpdateEvent.args["layerId"]] = event; |
| 529 break; | 529 break; |
| 530 | 530 |
| 531 case recordTypes.PictureSnapshot: | 531 case recordTypes.PictureSnapshot: |
| 532 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay
er); | 532 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay
er); |
| 533 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th
is._inspectedTargetLayerTreeId) | 533 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th
is._inspectedTargetLayerTreeId) |
| 534 break; | 534 break; |
| 535 var paintEvent = this._lastPaintForLayer[layerUpdateEvent.args["laye
rId"]]; | 535 var paintEvent = this._lastPaintForLayer[layerUpdateEvent.args["laye
rId"]]; |
| 536 if (!paintEvent || !event.args["snapshot"] || !event.args["snapshot"
]["params"]) | 536 if (!paintEvent || !event.args["snapshot"] || !event.args["snapshot"
]["params"]) |
| 537 break; | 537 break; |
| 538 paintEvent.picture = event.args["snapshot"]["skp64"]; | 538 paintEvent.picture = event.args["snapshot"]["skp64"]; |
| 539 paintEvent.layerRect = event.args["snapshot"]["params"]["layer_rect"
]; | 539 paintEvent.layerRect = event.args["snapshot"]["params"]["layer_rect"
]; |
| 540 break; | 540 break; |
| 541 | 541 |
| 542 case recordTypes.ScrollLayer: | 542 case recordTypes.ScrollLayer: |
| 543 event.backendNodeId = event.args["data"]["nodeId"]; | 543 event.backendNodeId = event.dataArg["nodeId"]; |
| 544 break; | 544 break; |
| 545 | 545 |
| 546 case recordTypes.PaintImage: | 546 case recordTypes.PaintImage: |
| 547 event.backendNodeId = event.args["data"]["nodeId"]; | 547 event.backendNodeId = event.dataArg["nodeId"]; |
| 548 event.imageURL = event.args["data"]["url"]; | 548 event.imageURL = event.dataArg["url"]; |
| 549 break; | 549 break; |
| 550 | 550 |
| 551 case recordTypes.DecodeImage: | 551 case recordTypes.DecodeImage: |
| 552 case recordTypes.ResizeImage: | 552 case recordTypes.ResizeImage: |
| 553 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage
); | 553 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage
); |
| 554 if (!paintImageEvent) { | 554 if (!paintImageEvent) { |
| 555 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType
s.DecodeLazyPixelRef); | 555 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType
s.DecodeLazyPixelRef); |
| 556 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve
ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]]; | 556 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve
ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]]; |
| 557 } | 557 } |
| 558 if (!paintImageEvent) | 558 if (!paintImageEvent) |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 setEndTime: function(endTime) | 757 setEndTime: function(endTime) |
| 758 { | 758 { |
| 759 throw new Error("Unsupported operation setEndTime"); | 759 throw new Error("Unsupported operation setEndTime"); |
| 760 }, | 760 }, |
| 761 | 761 |
| 762 /** | 762 /** |
| 763 * @return {!Object} | 763 * @return {!Object} |
| 764 */ | 764 */ |
| 765 data: function() | 765 data: function() |
| 766 { | 766 { |
| 767 return this._event.args.data; | 767 return this._event.dataArg; |
| 768 }, | 768 }, |
| 769 | 769 |
| 770 /** | 770 /** |
| 771 * @return {string} | 771 * @return {string} |
| 772 */ | 772 */ |
| 773 type: function() | 773 type: function() |
| 774 { | 774 { |
| 775 return this._event.name; | 775 return this._event.name; |
| 776 }, | 776 }, |
| 777 | 777 |
| 778 /** | 778 /** |
| 779 * @return {string} | 779 * @return {string} |
| 780 */ | 780 */ |
| 781 frameId: function() | 781 frameId: function() |
| 782 { | 782 { |
| 783 switch (this._event.name) { | 783 switch (this._event.name) { |
| 784 case WebInspector.TracingTimelineModel.RecordType.ScheduleStyleRecalcula
tion: | 784 case WebInspector.TracingTimelineModel.RecordType.ScheduleStyleRecalcula
tion: |
| 785 case WebInspector.TracingTimelineModel.RecordType.RecalculateStyles: | 785 case WebInspector.TracingTimelineModel.RecordType.RecalculateStyles: |
| 786 case WebInspector.TracingTimelineModel.RecordType.InvalidateLayout: | 786 case WebInspector.TracingTimelineModel.RecordType.InvalidateLayout: |
| 787 return this._event.args["frameId"]; | 787 return this._event.args["frameId"]; |
| 788 case WebInspector.TracingTimelineModel.RecordType.Layout: | 788 case WebInspector.TracingTimelineModel.RecordType.Layout: |
| 789 return this._event.args["beginData"]["frameId"]; | 789 return this._event.args["beginData"]["frameId"]; |
| 790 default: | 790 default: |
| 791 var data = this._event.args.data; | 791 var data = this._event.dataArg; |
| 792 return (data && data["frame"]) || ""; | 792 return (data && data["frame"]) || ""; |
| 793 } | 793 } |
| 794 }, | 794 }, |
| 795 | 795 |
| 796 /** | 796 /** |
| 797 * @return {?Array.<!ConsoleAgent.CallFrame>} | 797 * @return {?Array.<!ConsoleAgent.CallFrame>} |
| 798 */ | 798 */ |
| 799 stackTrace: function() | 799 stackTrace: function() |
| 800 { | 800 { |
| 801 return this._event.stackTrace; | 801 return this._event.stackTrace; |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 995 }, | 995 }, |
| 996 | 996 |
| 997 _didWriteNextChunk: function(stream) | 997 _didWriteNextChunk: function(stream) |
| 998 { | 998 { |
| 999 if (this._recordIndex === this._payloads.length) | 999 if (this._recordIndex === this._payloads.length) |
| 1000 stream.close(); | 1000 stream.close(); |
| 1001 else | 1001 else |
| 1002 this._writeNextChunk(stream); | 1002 this._writeNextChunk(stream); |
| 1003 } | 1003 } |
| 1004 } | 1004 } |
| OLD | NEW |