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 * @extends {WebInspector.TimelineUIUtils} | 7 * @extends {WebInspector.TimelineUIUtils} |
8 */ | 8 */ |
9 WebInspector.TracingTimelineUIUtils = function() | 9 WebInspector.TracingTimelineUIUtils = function() |
10 { | 10 { |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
531 var fragment = document.createDocumentFragment(); | 531 var fragment = document.createDocumentFragment(); |
532 var stats = {}; | 532 var stats = {}; |
533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event); | 533 var hasChildren = WebInspector.TracingTimelineUIUtils._aggregatedStatsForTra ceEvent(stats, model, event); |
534 var pieChart = hasChildren ? | 534 var pieChart = hasChildren ? |
535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) : | 535 WebInspector.TimelineUIUtils.generatePieChart(stats, WebInspector.Tracin gTimelineUIUtils.eventStyle(event).category, event.selfTime) : |
536 WebInspector.TimelineUIUtils.generatePieChart(stats); | 536 WebInspector.TimelineUIUtils.generatePieChart(stats); |
537 fragment.appendChild(pieChart); | 537 fragment.appendChild(pieChart); |
538 | 538 |
539 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | 539 var recordTypes = WebInspector.TracingTimelineModel.RecordType; |
540 | 540 |
541 // The messages may vary per event.name; | 541 // This message may vary per event.name; |
542 var callSiteStackTraceLabel; | |
543 var callStackLabel; | |
544 var relatedNodeLabel; | 542 var relatedNodeLabel; |
545 | 543 |
546 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); | 544 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); |
547 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true)); | 545 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime, true)); |
548 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()))); | 546 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()))); |
549 var eventData = event.args["data"]; | 547 var eventData = event.args["data"]; |
550 var initiator = event.initiator; | 548 var initiator = event.initiator; |
551 | 549 |
552 switch (event.name) { | 550 switch (event.name) { |
553 case recordTypes.GCEvent: | 551 case recordTypes.GCEvent: |
554 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; | 552 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; |
555 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); | 553 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); |
556 break; | 554 break; |
557 case recordTypes.TimerFire: | 555 case recordTypes.TimerFire: |
558 callSiteStackTraceLabel = WebInspector.UIString("Timer installed"); | |
559 // Fall-through intended. | |
560 | |
561 case recordTypes.TimerInstall: | 556 case recordTypes.TimerInstall: |
562 case recordTypes.TimerRemove: | 557 case recordTypes.TimerRemove: |
563 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); | 558 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); |
564 if (event.name === recordTypes.TimerInstall) { | 559 if (event.name === recordTypes.TimerInstall) { |
565 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); | 560 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); |
566 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); | 561 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); |
567 } | 562 } |
568 break; | 563 break; |
569 case recordTypes.FireAnimationFrame: | 564 case recordTypes.FireAnimationFrame: |
570 callSiteStackTraceLabel = WebInspector.UIString("Animation frame request ed"); | |
571 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); | 565 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); |
572 break; | 566 break; |
573 case recordTypes.FunctionCall: | 567 case recordTypes.FunctionCall: |
574 if (eventData["scriptName"]) | 568 if (eventData["scriptName"]) |
575 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]); | 569 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]); |
576 break; | 570 break; |
577 case recordTypes.ResourceSendRequest: | 571 case recordTypes.ResourceSendRequest: |
578 case recordTypes.ResourceReceiveResponse: | 572 case recordTypes.ResourceReceiveResponse: |
579 case recordTypes.ResourceReceivedData: | 573 case recordTypes.ResourceReceivedData: |
580 case recordTypes.ResourceFinish: | 574 case recordTypes.ResourceFinish: |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
612 case recordTypes.DecodeLazyPixelRef: | 606 case recordTypes.DecodeLazyPixelRef: |
613 case recordTypes.DecodeImage: | 607 case recordTypes.DecodeImage: |
614 case recordTypes.ResizeImage: | 608 case recordTypes.ResizeImage: |
615 case recordTypes.DrawLazyPixelRef: | 609 case recordTypes.DrawLazyPixelRef: |
616 relatedNodeLabel = WebInspector.UIString("Image element"); | 610 relatedNodeLabel = WebInspector.UIString("Image element"); |
617 if (event.imageURL) | 611 if (event.imageURL) |
618 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL)); | 612 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL)); |
619 break; | 613 break; |
620 case recordTypes.RecalculateStyles: // We don't want to see default details. | 614 case recordTypes.RecalculateStyles: // We don't want to see default details. |
621 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]); | 615 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]); |
622 callStackLabel = WebInspector.UIString("Styles recalculation forced"); | |
623 break; | 616 break; |
624 case recordTypes.Layout: | 617 case recordTypes.Layout: |
625 var beginData = event.args["beginData"]; | 618 var beginData = event.args["beginData"]; |
626 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]); | 619 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]); |
627 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]); | 620 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]); |
628 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), | 621 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), |
629 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document")); | 622 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document")); |
630 callSiteStackTraceLabel = WebInspector.UIString("Layout invalidated"); | |
631 callStackLabel = WebInspector.UIString("Layout forced"); | |
632 relatedNodeLabel = WebInspector.UIString("Layout root"); | 623 relatedNodeLabel = WebInspector.UIString("Layout root"); |
633 break; | 624 break; |
634 case recordTypes.ConsoleTime: | 625 case recordTypes.ConsoleTime: |
635 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name ); | 626 contentHelper.appendTextRow(WebInspector.UIString("Message"), event.name ); |
636 break; | 627 break; |
637 case recordTypes.WebSocketCreate: | 628 case recordTypes.WebSocketCreate: |
638 case recordTypes.WebSocketSendHandshakeRequest: | 629 case recordTypes.WebSocketSendHandshakeRequest: |
639 case recordTypes.WebSocketReceiveHandshakeResponse: | 630 case recordTypes.WebSocketReceiveHandshakeResponse: |
640 case recordTypes.WebSocketDestroy: | 631 case recordTypes.WebSocketDestroy: |
641 var initiatorData = initiator ? initiator.args["data"] : eventData; | 632 var initiatorData = initiator ? initiator.args["data"] : eventData; |
(...skipping 13 matching lines...) Expand all Loading... | |
655 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); | 646 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode); |
656 break; | 647 break; |
657 } | 648 } |
658 | 649 |
659 if (relatedNode) | 650 if (relatedNode) |
660 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); | 651 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); |
661 | 652 |
662 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) | 653 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) |
663 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); | 654 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); |
664 | 655 |
665 if (initiator) { | |
666 var callSiteStackTrace = initiator.stackTrace; | |
667 if (callSiteStackTrace) | |
668 contentHelper.appendStackTrace(callSiteStackTraceLabel || WebInspect or.UIString("Call Site stack"), callSiteStackTrace); | |
669 } | |
670 var eventStackTrace = event.stackTrace; | |
671 if (eventStackTrace) | |
672 contentHelper.appendStackTrace(callStackLabel || WebInspector.UIString(" Call Stack"), eventStackTrace); | |
673 | |
674 var warning = event.warning; | 656 var warning = event.warning; |
675 if (warning) { | 657 if (warning) { |
676 var div = document.createElement("div"); | 658 var div = document.createElement("div"); |
677 div.textContent = warning; | 659 div.textContent = warning; |
678 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); | 660 contentHelper.appendElementRow(WebInspector.UIString("Warning"), div); |
679 } | 661 } |
680 if (event.previewElement) | 662 if (event.previewElement) |
681 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement); | 663 contentHelper.appendElementRow(WebInspector.UIString("Preview"), event.p reviewElement); |
682 fragment.appendChild(contentHelper.element); | 664 fragment.appendChild(contentHelper.element); |
683 return fragment; | 665 return fragment; |
684 } | 666 } |
685 | 667 |
686 /** | 668 /** |
669 * @param {!WebInspector.TracingModel.Event} event | |
670 * @param {!WebInspector.Linkifier} linkifier | |
671 * @return {!Node} | |
672 */ | |
673 WebInspector.TracingTimelineUIUtils.generateCauses = function(event, linkifier) | |
674 { | |
675 var recordTypes = WebInspector.TracingTimelineModel.RecordType; | |
676 var contentHelper = new WebInspector.TimelineDetailsContentHelper(event.thre ad.target(), linkifier, true); | |
677 | |
678 var callSiteStackLabel; | |
679 var stackLabel; | |
680 | |
681 switch (event.name) { | |
682 case recordTypes.TimerFire: | |
683 callSiteStackLabel = WebInspector.UIString("Timer installed"); | |
684 break; | |
685 case recordTypes.FireAnimationFrame: | |
686 callSiteStackLabel = WebInspector.UIString("Animation frame requested"); | |
687 break; | |
688 case recordTypes.RecalculateStyles: | |
689 stackLabel = WebInspector.UIString("Stack when style recalculation was f orced"); | |
690 break; | |
691 case recordTypes.Layout: | |
692 callSiteStackLabel = WebInspector.UIString("First layout invalidation"); | |
693 stackLabel = WebInspector.UIString("Stack when layout was forced"); | |
694 break; | |
695 default: | |
caseq
2014/10/07 09:50:08
Nuke default section or move the fall-back strings
pdr.
2014/10/08 06:06:20
Done.
| |
696 break; | |
697 } | |
698 | |
699 // Direct cause. | |
700 if (event.stackTrace) | |
701 contentHelper.appendStackTrace(stackLabel || WebInspector.UIString("Stac k when this event occurred"), event.stackTrace); | |
702 | |
703 // Indirect cause / invalidation. | |
704 var initiator = event.initiator; | |
705 if (initiator && initiator.stackTrace) | |
706 contentHelper.appendStackTrace(callSiteStackLabel || WebInspector.UIStri ng("Stack when first invalidated"), initiator.stackTrace); | |
707 | |
708 return contentHelper.element; | |
709 } | |
710 | |
711 /** | |
687 * @param {!Object} total | 712 * @param {!Object} total |
688 * @param {!WebInspector.TracingTimelineModel} model | 713 * @param {!WebInspector.TracingTimelineModel} model |
689 * @param {!WebInspector.TracingModel.Event} event | 714 * @param {!WebInspector.TracingModel.Event} event |
690 * @return {boolean} | 715 * @return {boolean} |
691 */ | 716 */ |
692 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event) | 717 WebInspector.TracingTimelineUIUtils._aggregatedStatsForTraceEvent = function(tot al, model, event) |
693 { | 718 { |
694 var events = model.inspectedTargetEvents(); | 719 var events = model.inspectedTargetEvents(); |
695 /** | 720 /** |
696 * @param {number} startTime | 721 * @param {number} startTime |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
814 return result; | 839 return result; |
815 } | 840 } |
816 | 841 |
817 /** | 842 /** |
818 * @return {!WebInspector.TracingTimelineModel.Filter} | 843 * @return {!WebInspector.TracingTimelineModel.Filter} |
819 */ | 844 */ |
820 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() | 845 WebInspector.TracingTimelineUIUtils.hiddenEventsFilter = function() |
821 { | 846 { |
822 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); | 847 return new WebInspector.TracingTimelineModel.InclusiveEventNameFilter(WebIns pector.TracingTimelineUIUtils._visibleTypes()); |
823 } | 848 } |
OLD | NEW |