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 |