Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: Source/devtools/front_end/timeline/TimelineUIUtils.js

Issue 308123008: DevTools: added support for image url & node in tracing-based timeline (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: skip check for presence of endData in Layout Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 * @param {!WebInspector.TracingModel.Event} event 667 * @param {!WebInspector.TracingModel.Event} event
668 * @param {!WebInspector.TracingModel} model 668 * @param {!WebInspector.TracingModel} model
669 * @param {!WebInspector.Linkifier} linkifier 669 * @param {!WebInspector.Linkifier} linkifier
670 * @param {function(!DocumentFragment)} callback 670 * @param {function(!DocumentFragment)} callback
671 * @param {boolean} loadedFromFile 671 * @param {boolean} loadedFromFile
672 * @param {?WebInspector.TimelineTraceEventBindings} bindings 672 * @param {?WebInspector.TimelineTraceEventBindings} bindings
673 * @param {!WebInspector.Target} target 673 * @param {!WebInspector.Target} target
674 */ 674 */
675 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin kifier, callback, loadedFromFile, bindings, target) 675 WebInspector.TimelineUIUtils.buildTraceEventDetails = function(event, model, lin kifier, callback, loadedFromFile, bindings, target)
676 { 676 {
677 var imageElement = event.previewElement;
678 var relatedNode = null; 677 var relatedNode = null;
679 var eventData = event.args.data;
680 var barrier = new CallbackBarrier(); 678 var barrier = new CallbackBarrier();
681 if (!imageElement && WebInspector.TimelineUIUtils.needsPreviewElement(event. name)) 679 if (event.imageURL && !event.previewElement)
682 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, even tData["url"], false, barrier.createCallback(saveImage)); 680 WebInspector.DOMPresentationUtils.buildImagePreviewContents(target, even t.imageURL, false, barrier.createCallback(saveImage));
683 var backendNodeId; 681 if (event.backendNodeId)
684 var recordTypes = WebInspector.TimelineModel.RecordType; 682 target.domModel.pushNodesByBackendIdsToFrontend([event.backendNodeId], b arrier.createCallback(setRelatedNode));
685 switch (event.name) {
686 case recordTypes.Layout:
687 backendNodeId = event.args["endData"]["rootNode"];
688 break;
689 case recordTypes.Paint:
690 case recordTypes.ScrollLayer:
691 backendNodeId = eventData["nodeId"];
692 break;
693 case recordTypes.DecodeImage:
694 case recordTypes.ResizeImage:
695 // FIXME: provide node id.
696 break;
697 }
698 if (backendNodeId)
699 target.domModel.pushNodesByBackendIdsToFrontend([backendNodeId], barrier .createCallback(setRelatedNode));
700 barrier.callWhenDone(callbackWrapper); 683 barrier.callWhenDone(callbackWrapper);
701 684
702 /** 685 /**
703 * @param {!Element=} element 686 * @param {!Element=} element
704 */ 687 */
705 function saveImage(element) 688 function saveImage(element)
706 { 689 {
707 imageElement = element || null; 690 event.previewElement = element || null;
708 event.previewElement = imageElement;
709 } 691 }
710 692
711 /** 693 /**
712 * @param {?Array.<!DOMAgent.NodeId>} nodeIds 694 * @param {?Array.<!DOMAgent.NodeId>} nodeIds
713 */ 695 */
714 function setRelatedNode(nodeIds) 696 function setRelatedNode(nodeIds)
715 { 697 {
716 if (nodeIds) 698 if (nodeIds)
717 relatedNode = target.domModel.nodeForId(nodeIds[0]); 699 relatedNode = target.domModel.nodeForId(nodeIds[0]);
718 } 700 }
719 701
720 function callbackWrapper() 702 function callbackWrapper()
721 { 703 {
722 callback(WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronous ly(event, model, linkifier, imageElement, relatedNode, loadedFromFile, bindings, target)); 704 callback(WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronous ly(event, model, linkifier, relatedNode, loadedFromFile, bindings, target));
723 } 705 }
724 } 706 }
725 707
726 /** 708 /**
727 * @param {!WebInspector.TracingModel.Event} event 709 * @param {!WebInspector.TracingModel.Event} event
728 * @param {!WebInspector.TracingModel} model 710 * @param {!WebInspector.TracingModel} model
729 * @param {!WebInspector.Linkifier} linkifier 711 * @param {!WebInspector.Linkifier} linkifier
730 * @param {?Element} imagePreviewElement
731 * @param {?WebInspector.DOMNode} relatedNode 712 * @param {?WebInspector.DOMNode} relatedNode
732 * @param {boolean} loadedFromFile 713 * @param {boolean} loadedFromFile
733 * @param {?WebInspector.TimelineTraceEventBindings} bindings 714 * @param {?WebInspector.TimelineTraceEventBindings} bindings
734 * @param {!WebInspector.Target} target 715 * @param {!WebInspector.Target} target
735 * @return {!DocumentFragment} 716 * @return {!DocumentFragment}
736 */ 717 */
737 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve nt, model, linkifier, imagePreviewElement, relatedNode, loadedFromFile, bindings , target) 718 WebInspector.TimelineUIUtils._buildTraceEventDetailsSynchronously = function(eve nt, model, linkifier, relatedNode, loadedFromFile, bindings, target)
738 { 719 {
739 var fragment = document.createDocumentFragment(); 720 var fragment = document.createDocumentFragment();
740 var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model , event); 721 var stats = WebInspector.TimelineUIUtils._aggregatedStatsForTraceEvent(model , event);
741 var pieChart = stats.hasChildren ? 722 var pieChart = stats.hasChildren ?
742 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats, Web Inspector.TimelineUIUtils.styleForTimelineEvent(event.name).category, event.self Time / 1000) : 723 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats, Web Inspector.TimelineUIUtils.styleForTimelineEvent(event.name).category, event.self Time / 1000) :
743 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats); 724 WebInspector.TimelineUIUtils.generatePieChart(stats.aggregatedStats);
744 fragment.appendChild(pieChart); 725 fragment.appendChild(pieChart);
745 726
746 var recordTypes = WebInspector.TimelineModel.RecordType; 727 var recordTypes = WebInspector.TimelineTraceEventBindings.RecordType;
747 728
748 // The messages may vary per event.name; 729 // The messages may vary per event.name;
749 var callSiteStackTraceLabel; 730 var callSiteStackTraceLabel;
750 var callStackLabel; 731 var callStackLabel;
751 var relatedNodeLabel; 732 var relatedNodeLabel;
752 733
753 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li nkifier, true); 734 var contentHelper = new WebInspector.TimelineDetailsContentHelper(target, li nkifier, true);
754 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime / 1000, true)); 735 contentHelper.appendTextRow(WebInspector.UIString("Self Time"), Number.milli sToString(event.selfTime / 1000, true));
755 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()) / 1000)); 736 contentHelper.appendTextRow(WebInspector.UIString("Start Time"), Number.mill isToString((event.startTime - model.minimumRecordTime()) / 1000));
756 var eventData = event.args.data; 737 var eventData = event.args.data;
757 var initiator = event.initiator; 738 var initiator = event.initiator;
758 739
759 switch (event.name) { 740 switch (event.name) {
760 case recordTypes.GCEvent: 741 case recordTypes.GCEvent:
761 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapS izeAfter"]; 742 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
762 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Numb er.bytesToString(delta)); 743 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta));
763 break; 744 break;
764 case recordTypes.TimerFire: 745 case recordTypes.TimerFire:
765 callSiteStackTraceLabel = WebInspector.UIString("Timer installed"); 746 callSiteStackTraceLabel = WebInspector.UIString("Timer installed");
766 // Fall-through intended. 747 // Fall-through intended.
767 748
768 case recordTypes.TimerInstall: 749 case recordTypes.TimerInstall:
769 case recordTypes.TimerRemove: 750 case recordTypes.TimerRemove:
770 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), event Data["timerId"]); 751 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]);
771 if (event.name === recordTypes.TimerInstall) { 752 if (event.name === recordTypes.TimerInstall) {
772 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Nu mber.millisToString(eventData["timeout"])); 753 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"]));
773 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !e ventData["singleShot"]); 754 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]);
774 } 755 }
775 break; 756 break;
776 case recordTypes.FireAnimationFrame: 757 case recordTypes.FireAnimationFrame:
777 callSiteStackTraceLabel = WebInspector.UIString("Animation frame req uested"); 758 callSiteStackTraceLabel = WebInspector.UIString("Animation frame request ed");
778 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), ev entData["id"]); 759 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]);
779 break; 760 break;
780 case recordTypes.FunctionCall: 761 case recordTypes.FunctionCall:
781 if (eventData["scriptName"]) 762 if (eventData["scriptName"])
782 contentHelper.appendLocationRow(WebInspector.UIString("Location" ), eventData["scriptName"], eventData["scriptLine"]); 763 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]);
783 break; 764 break;
784 case recordTypes.ResourceSendRequest: 765 case recordTypes.ResourceSendRequest:
785 case recordTypes.ResourceReceiveResponse: 766 case recordTypes.ResourceReceiveResponse:
786 case recordTypes.ResourceReceivedData: 767 case recordTypes.ResourceReceivedData:
787 case recordTypes.ResourceFinish: 768 case recordTypes.ResourceFinish:
788 var url = (event.name === recordTypes.ResourceSendRequest) ? eventDa ta["url"] : initiator.args.data["url"]; 769 var url = (event.name === recordTypes.ResourceSendRequest) ? eventData[" url"] : initiator.args.data["url"];
789 if (url) 770 if (url)
790 contentHelper.appendElementRow(WebInspector.UIString("Resource") , WebInspector.linkifyResourceAsNode(url)); 771 contentHelper.appendElementRow(WebInspector.UIString("Resource"), We bInspector.linkifyResourceAsNode(url));
791 if (imagePreviewElement) 772 if (event.previewElement)
792 contentHelper.appendElementRow(WebInspector.UIString("Preview"), imagePreviewElement); 773 contentHelper.appendElementRow(WebInspector.UIString("Preview"), eve nt.previewElement);
793 if (eventData["requestMethod"]) 774 if (eventData["requestMethod"])
794 contentHelper.appendTextRow(WebInspector.UIString("Request Metho d"), eventData["requestMethod"]); 775 contentHelper.appendTextRow(WebInspector.UIString("Request Method"), eventData["requestMethod"]);
795 if (typeof eventData["statusCode"] === "number") 776 if (typeof eventData["statusCode"] === "number")
796 contentHelper.appendTextRow(WebInspector.UIString("Status Code") , eventData["statusCode"]); 777 contentHelper.appendTextRow(WebInspector.UIString("Status Code"), ev entData["statusCode"]);
797 if (eventData["mimeType"]) 778 if (eventData["mimeType"])
798 contentHelper.appendTextRow(WebInspector.UIString("MIME Type"), eventData["mimeType"]); 779 contentHelper.appendTextRow(WebInspector.UIString("MIME Type"), even tData["mimeType"]);
799 if (eventData["encodedDataLength"]) 780 if (eventData["encodedDataLength"])
800 contentHelper.appendTextRow(WebInspector.UIString("Encoded Data Length"), WebInspector.UIString("%d Bytes", eventData["encodedDataLength"])); 781 contentHelper.appendTextRow(WebInspector.UIString("Encoded Data Leng th"), WebInspector.UIString("%d Bytes", eventData["encodedDataLength"]));
801 break; 782 break;
802 case recordTypes.EvaluateScript: 783 case recordTypes.EvaluateScript:
803 var url = eventData["url"]; 784 var url = eventData["url"];
804 if (url) 785 if (url)
805 contentHelper.appendLocationRow(WebInspector.UIString("Script"), url, eventData["lineNumber"]); 786 contentHelper.appendLocationRow(WebInspector.UIString("Script"), url , eventData["lineNumber"]);
806 break; 787 break;
807 case recordTypes.Paint: 788 case recordTypes.Paint:
808 var clip = eventData["clip"]; 789 var clip = eventData["clip"];
809 contentHelper.appendTextRow(WebInspector.UIString("Location"), WebIn spector.UIString("(%d, %d)", clip[0], clip[1])); 790 contentHelper.appendTextRow(WebInspector.UIString("Location"), WebInspec tor.UIString("(%d, %d)", clip[0], clip[1]));
810 var clipWidth = WebInspector.TimelineUIUtils._quadWidth(clip); 791 var clipWidth = WebInspector.TimelineUIUtils._quadWidth(clip);
811 var clipHeight = WebInspector.TimelineUIUtils._quadHeight(clip); 792 var clipHeight = WebInspector.TimelineUIUtils._quadHeight(clip);
812 contentHelper.appendTextRow(WebInspector.UIString("Dimensions"), Web Inspector.UIString("%d × %d", clipWidth, clipHeight)); 793 contentHelper.appendTextRow(WebInspector.UIString("Dimensions"), WebInsp ector.UIString("%d × %d", clipWidth, clipHeight));
813 // Fall-through intended. 794 // Fall-through intended.
814 795
815 case recordTypes.PaintSetup: 796 case recordTypes.PaintSetup:
816 case recordTypes.Rasterize: 797 case recordTypes.Rasterize:
817 case recordTypes.ScrollLayer: 798 case recordTypes.ScrollLayer:
818 relatedNodeLabel = WebInspector.UIString("Layer root"); 799 relatedNodeLabel = WebInspector.UIString("Layer root");
819 break; 800 break;
820 case recordTypes.DecodeImage: 801 case recordTypes.PaintImage:
821 case recordTypes.ResizeImage: 802 case recordTypes.DecodeLazyPixelRef:
822 relatedNodeLabel = WebInspector.UIString("Image element"); 803 case recordTypes.DecodeImage:
823 var url = eventData["url"]; 804 case recordTypes.ResizeImage:
824 if (url) 805 case recordTypes.DrawLazyPixelRef:
825 contentHelper.appendElementRow(WebInspector.UIString("Image URL" ), WebInspector.linkifyResourceAsNode(url)); 806 relatedNodeLabel = WebInspector.UIString("Image element");
826 break; 807 if (event.imageURL)
827 case recordTypes.RecalculateStyles: // We don't want to see default deta ils. 808 contentHelper.appendElementRow(WebInspector.UIString("Image URL"), W ebInspector.linkifyResourceAsNode(event.imageURL));
828 contentHelper.appendTextRow(WebInspector.UIString("Elements affected "), event.args["elementCount"]); 809 if (event.previewElement)
829 callStackLabel = WebInspector.UIString("Styles recalculation forced" ); 810 contentHelper.appendElementRow(WebInspector.UIString("Preview"), eve nt.previewElement);
830 break; 811 break;
831 case recordTypes.Layout: 812 case recordTypes.RecalculateStyles: // We don't want to see default details.
832 var beginData = event.args["beginData"]; 813 contentHelper.appendTextRow(WebInspector.UIString("Elements affected"), event.args["elementCount"]);
833 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need l ayout"), beginData["dirtyObjects"]); 814 callStackLabel = WebInspector.UIString("Styles recalculation forced");
834 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size" ), beginData["totalObjects"]); 815 break;
835 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"), 816 case recordTypes.Layout:
836 beginData["partialLayout"] ? WebInspector.UIString("Partial") : WebInspector.UIString("Whole document")); 817 var beginData = event.args["beginData"];
837 callSiteStackTraceLabel = WebInspector.UIString("Layout invalidated" ); 818 contentHelper.appendTextRow(WebInspector.UIString("Nodes that need layou t"), beginData["dirtyObjects"]);
838 callStackLabel = WebInspector.UIString("Layout forced"); 819 contentHelper.appendTextRow(WebInspector.UIString("Layout tree size"), b eginData["totalObjects"]);
839 relatedNodeLabel = WebInspector.UIString("Layout root"); 820 contentHelper.appendTextRow(WebInspector.UIString("Layout scope"),
840 break; 821 beginData["partialLayout"] ? WebInspector.UI String("Partial") : WebInspector.UIString("Whole document"));
841 case recordTypes.ConsoleTime: 822 callSiteStackTraceLabel = WebInspector.UIString("Layout invalidated");
823 callStackLabel = WebInspector.UIString("Layout forced");
824 relatedNodeLabel = WebInspector.UIString("Layout root");
825 break;
826 case recordTypes.ConsoleTime:
827 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventData[ "message"]);
828 break;
829 case recordTypes.WebSocketCreate:
830 case recordTypes.WebSocketSendHandshakeRequest:
831 case recordTypes.WebSocketReceiveHandshakeResponse:
832 case recordTypes.WebSocketDestroy:
833 var initiatorData = initiator ? initiator.args.data : eventData;
834 if (typeof initiatorData["webSocketURL"] !== "undefined")
835 contentHelper.appendTextRow(WebInspector.UIString("URL"), initiatorD ata["webSocketURL"]);
836 if (typeof initiatorData["webSocketProtocol"] !== "undefined")
837 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Protoco l"), initiatorData["webSocketProtocol"]);
838 if (typeof eventData["message"] !== "undefined")
842 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]); 839 contentHelper.appendTextRow(WebInspector.UIString("Message"), eventD ata["message"]);
843 break; 840 break;
844 case recordTypes.WebSocketCreate: 841 case recordTypes.EmbedderCallback:
845 case recordTypes.WebSocketSendHandshakeRequest: 842 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]);
846 case recordTypes.WebSocketReceiveHandshakeResponse: 843 break;
847 case recordTypes.WebSocketDestroy: 844 default:
848 var initiatorData = initiator ? initiator.args.data : eventData; 845 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE vent(event, linkifier, loadedFromFile, bindings, target);
849 if (typeof initiatorData["webSocketURL"] !== "undefined") 846 if (detailsNode)
850 contentHelper.appendTextRow(WebInspector.UIString("URL"), initia torData["webSocketURL"]); 847 contentHelper.appendElementRow(WebInspector.UIString("Details"), det ailsNode);
851 if (typeof initiatorData["webSocketProtocol"] !== "undefined") 848 break;
852 contentHelper.appendTextRow(WebInspector.UIString("WebSocket Pro tocol"), initiatorData["webSocketProtocol"]);
853 if (typeof eventData["message"] !== "undefined")
854 contentHelper.appendTextRow(WebInspector.UIString("Message"), ev entData["message"]);
855 break;
856 case recordTypes.EmbedderCallback:
857 contentHelper.appendTextRow(WebInspector.UIString("Callback Function "), eventData["callbackName"]);
858 break;
859 default:
860 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTr aceEvent(event, linkifier, loadedFromFile, bindings, target);
861 if (detailsNode)
862 contentHelper.appendElementRow(WebInspector.UIString("Details"), detailsNode);
863 break;
864 } 849 }
865 850
866 if (relatedNode) 851 if (relatedNode)
867 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node)); 852 contentHelper.appendElementRow(relatedNodeLabel || WebInspector.UIString ("Related node"), WebInspector.DOMPresentationUtils.linkifyNodeReference(related Node));
868 853
869 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall) 854 if (eventData && eventData["scriptName"] && event.name !== recordTypes.Funct ionCall)
870 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]); 855 contentHelper.appendLocationRow(WebInspector.UIString("Function Call"), eventData["scriptName"], eventData["scriptLine"]);
871 856
872 if (initiator) { 857 if (initiator) {
873 var callSiteStackTrace = initiator.stackTrace; 858 var callSiteStackTrace = initiator.stackTrace;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 /** 1047 /**
1063 * @param {!WebInspector.TracingModel.Event} event 1048 * @param {!WebInspector.TracingModel.Event} event
1064 * @param {!WebInspector.Linkifier} linkifier 1049 * @param {!WebInspector.Linkifier} linkifier
1065 * @param {boolean} loadedFromFile 1050 * @param {boolean} loadedFromFile
1066 * @param {?WebInspector.TimelineTraceEventBindings} bindings 1051 * @param {?WebInspector.TimelineTraceEventBindings} bindings
1067 * @param {!WebInspector.Target} target 1052 * @param {!WebInspector.Target} target
1068 * @return {?Node} 1053 * @return {?Node}
1069 */ 1054 */
1070 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, lin kifier, loadedFromFile, bindings, target) 1055 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, lin kifier, loadedFromFile, bindings, target)
1071 { 1056 {
1057 var recordType = WebInspector.TimelineTraceEventBindings.RecordType;
1058
1072 var details; 1059 var details;
1073 var detailsText; 1060 var detailsText;
1074 var eventData = event.args.data; 1061 var eventData = event.args.data;
1075 switch (event.name) { 1062 switch (event.name) {
1076 case WebInspector.TimelineModel.RecordType.GCEvent: 1063 case recordType.GCEvent:
1077 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 1064 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
1078 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta)); 1065 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta));
1079 break; 1066 break;
1080 case WebInspector.TimelineModel.RecordType.TimerFire: 1067 case recordType.TimerFire:
1081 detailsText = eventData["timerId"]; 1068 detailsText = eventData["timerId"];
1082 break; 1069 break;
1083 case WebInspector.TimelineModel.RecordType.FunctionCall: 1070 case recordType.FunctionCall:
1084 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"] , eventData["scriptLine"], 0); 1071 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"] , eventData["scriptLine"], 0);
1085 break; 1072 break;
1086 case WebInspector.TimelineModel.RecordType.FireAnimationFrame: 1073 case recordType.FireAnimationFrame:
1087 detailsText = eventData["id"]; 1074 detailsText = eventData["id"];
1088 break; 1075 break;
1089 case WebInspector.TimelineModel.RecordType.EventDispatch: 1076 case recordType.EventDispatch:
1090 detailsText = eventData ? eventData["type"] : null; 1077 detailsText = eventData ? eventData["type"] : null;
1091 break; 1078 break;
1092 case WebInspector.TimelineModel.RecordType.Paint: 1079 case recordType.Paint:
1093 var width = WebInspector.TimelineUIUtils._quadWidth(eventData.clip); 1080 var width = WebInspector.TimelineUIUtils._quadWidth(eventData.clip);
1094 var height = WebInspector.TimelineUIUtils._quadHeight(eventData.clip); 1081 var height = WebInspector.TimelineUIUtils._quadHeight(eventData.clip);
1095 if (width && height) 1082 if (width && height)
1096 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); 1083 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height);
1097 break; 1084 break;
1098 case WebInspector.TimelineModel.RecordType.TimerInstall: 1085 case recordType.TimerInstall:
1099 case WebInspector.TimelineModel.RecordType.TimerRemove: 1086 case recordType.TimerRemove:
1100 details = linkifyTopCallFrame(); 1087 details = linkifyTopCallFrame();
1101 detailsText = eventData["timerId"]; 1088 detailsText = eventData["timerId"];
1102 break; 1089 break;
1103 case WebInspector.TimelineModel.RecordType.RequestAnimationFrame: 1090 case recordType.RequestAnimationFrame:
1104 case WebInspector.TimelineModel.RecordType.CancelAnimationFrame: 1091 case recordType.CancelAnimationFrame:
1105 details = linkifyTopCallFrame(); 1092 details = linkifyTopCallFrame();
1106 detailsText = eventData["id"]; 1093 detailsText = eventData["id"];
1107 break; 1094 break;
1108 case WebInspector.TimelineModel.RecordType.ParseHTML: 1095 case recordType.ParseHTML:
1109 case WebInspector.TimelineModel.RecordType.RecalculateStyles: 1096 case recordType.RecalculateStyles:
1110 details = linkifyTopCallFrame(); 1097 details = linkifyTopCallFrame();
1111 break; 1098 break;
1112 case WebInspector.TimelineModel.RecordType.EvaluateScript: 1099 case recordType.EvaluateScript:
1113 var url = eventData["url"]; 1100 var url = eventData["url"];
1114 if (url) 1101 if (url)
1115 details = linkifyLocation("", url, eventData["lineNumber"], 0); 1102 details = linkifyLocation("", url, eventData["lineNumber"], 0);
1116 break; 1103 break;
1117 case WebInspector.TimelineModel.RecordType.XHRReadyStateChange: 1104 case recordType.XHRReadyStateChange:
1118 case WebInspector.TimelineModel.RecordType.XHRLoad: 1105 case recordType.XHRLoad:
1119 case WebInspector.TimelineModel.RecordType.ResourceSendRequest: 1106 case recordType.ResourceSendRequest:
1120 case WebInspector.TimelineModel.RecordType.DecodeImage: 1107 case recordType.DecodeImage:
1121 case WebInspector.TimelineModel.RecordType.ResizeImage: 1108 case recordType.ResizeImage:
1122 var url = eventData["url"]; 1109 var url = eventData["url"];
1123 if (url) 1110 if (url)
1124 detailsText = WebInspector.displayNameForURL(url); 1111 detailsText = WebInspector.displayNameForURL(url);
1125 break; 1112 break;
1126 case WebInspector.TimelineModel.RecordType.ResourceReceivedData: 1113 case recordType.ResourceReceivedData:
1127 case WebInspector.TimelineModel.RecordType.ResourceReceiveResponse: 1114 case recordType.ResourceReceiveResponse:
1128 case WebInspector.TimelineModel.RecordType.ResourceFinish: 1115 case recordType.ResourceFinish:
1129 var initiator = event.initiator; 1116 var initiator = event.initiator;
1130 if (initiator) { 1117 if (initiator) {
1131 var url = initiator.args.data["url"]; 1118 var url = initiator.args.data["url"];
1132 if (url) 1119 if (url)
1133 detailsText = WebInspector.displayNameForURL(url); 1120 detailsText = WebInspector.displayNameForURL(url);
1134 } 1121 }
1135 break; 1122 break;
1136 case WebInspector.TimelineModel.RecordType.ConsoleTime: 1123 case recordType.ConsoleTime:
1137 detailsText = eventData["message"]; 1124 detailsText = eventData["message"];
1138 break; 1125 break;
1139 case WebInspector.TimelineModel.RecordType.EmbedderCallback: 1126 case recordType.EmbedderCallback:
1140 detailsText = eventData["callbackName"]; 1127 detailsText = eventData["callbackName"];
1141 break; 1128 break;
1129
1130 case recordType.PaintImage:
1131 case recordType.DecodeImage:
1132 case recordType.ResizeImage:
1133 case recordType.DecodeLazyPixelRef:
1134 var url = event.imageURL;
1135 if (url)
1136 detailsText = WebInspector.displayNameForURL(url);
1137 break;
1138
1142 default: 1139 default:
1143 details = linkifyTopCallFrame(); 1140 details = linkifyTopCallFrame();
1144 break; 1141 break;
1145 } 1142 }
1146 1143
1147 if (!details && detailsText) 1144 if (!details && detailsText)
1148 details = document.createTextNode(detailsText); 1145 details = document.createTextNode(detailsText);
1149 return details; 1146 return details;
1150 1147
1151 /** 1148 /**
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1385 for (var i = 0; i < stackTrace.length; ++i) { 1382 for (var i = 0; i < stackTrace.length; ++i) {
1386 var stackFrame = stackTrace[i]; 1383 var stackFrame = stackTrace[i];
1387 var row = stackTraceElement.createChild("div"); 1384 var row = stackTraceElement.createChild("div");
1388 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)")); 1385 row.createTextChild(stackFrame.functionName || WebInspector.UIString ("(anonymous function)"));
1389 row.createTextChild(" @ "); 1386 row.createTextChild(" @ ");
1390 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1); 1387 var urlElement = this._linkifier.linkifyLocation(this._target, stack Frame.url, stackFrame.lineNumber - 1);
1391 row.appendChild(urlElement); 1388 row.appendChild(urlElement);
1392 } 1389 }
1393 } 1390 }
1394 } 1391 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/timeline/TimelineTraceEventBindings.js ('k') | Source/devtools/front_end/timeline/TracingModel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698