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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js

Issue 2169153002: DevTools: make all timeline trace events use 0-based line numbers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update expectation Created 4 years, 5 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
824 var eventStack = this._eventStack; 824 var eventStack = this._eventStack;
825 while (eventStack.length && eventStack.peekLast().endTime <= event.start Time) 825 while (eventStack.length && eventStack.peekLast().endTime <= event.start Time)
826 eventStack.pop(); 826 eventStack.pop();
827 827
828 var recordTypes = WebInspector.TimelineModel.RecordType; 828 var recordTypes = WebInspector.TimelineModel.RecordType;
829 829
830 if (this._currentScriptEvent && event.startTime > this._currentScriptEve nt.endTime) 830 if (this._currentScriptEvent && event.startTime > this._currentScriptEve nt.endTime)
831 this._currentScriptEvent = null; 831 this._currentScriptEvent = null;
832 832
833 var eventData = event.args["data"] || event.args["beginData"] || {}; 833 var eventData = event.args["data"] || event.args["beginData"] || {};
834 if (eventData && eventData["stackTrace"]) 834 if (eventData["stackTrace"])
835 event.stackTrace = eventData["stackTrace"]; 835 event.stackTrace = eventData["stackTrace"];
836 if (event.stackTrace && event.name !== recordTypes.JSSample) {
837 // TraceEvents come with 1-based line & column numbers. The frontend code
838 // requires 0-based ones. Adjust the values.
839 for (var i = 0; i < event.stackTrace.length; ++i) {
840 --event.stackTrace[i].lineNumber;
841 --event.stackTrace[i].columnNumber;
842 }
843 }
836 844
837 if (eventStack.length && eventStack.peekLast().name === recordTypes.Even tDispatch) 845 if (eventStack.length && eventStack.peekLast().name === recordTypes.Even tDispatch)
838 eventStack.peekLast().hasChildren = true; 846 eventStack.peekLast().hasChildren = true;
839 this._asyncEventTracker.processEvent(event); 847 this._asyncEventTracker.processEvent(event);
840 if (event.initiator && event.initiator.url) 848 if (event.initiator && event.initiator.url)
841 event.url = event.initiator.url; 849 event.url = event.initiator.url;
842 switch (event.name) { 850 switch (event.name) {
843 case recordTypes.ResourceSendRequest: 851 case recordTypes.ResourceSendRequest:
844 case recordTypes.WebSocketCreate: 852 case recordTypes.WebSocketCreate:
845 event.url = event.args["data"]["url"]; 853 event.url = eventData["url"];
846 event.initiator = eventStack.peekLast() || null; 854 event.initiator = eventStack.peekLast() || null;
847 break; 855 break;
848 856
849 case recordTypes.ScheduleStyleRecalculation: 857 case recordTypes.ScheduleStyleRecalculation:
850 this._lastScheduleStyleRecalculation[event.args["data"]["frame"]] = event; 858 this._lastScheduleStyleRecalculation[eventData["frame"]] = event;
851 break; 859 break;
852 860
853 case recordTypes.UpdateLayoutTree: 861 case recordTypes.UpdateLayoutTree:
854 case recordTypes.RecalculateStyles: 862 case recordTypes.RecalculateStyles:
855 this._invalidationTracker.didRecalcStyle(event); 863 this._invalidationTracker.didRecalcStyle(event);
856 if (event.args["beginData"]) 864 if (event.args["beginData"])
857 event.initiator = this._lastScheduleStyleRecalculation[event.arg s["beginData"]["frame"]]; 865 event.initiator = this._lastScheduleStyleRecalculation[event.arg s["beginData"]["frame"]];
858 this._lastRecalculateStylesEvent = event; 866 this._lastRecalculateStylesEvent = event;
859 if (this._currentScriptEvent) 867 if (this._currentScriptEvent)
860 event.warning = WebInspector.TimelineModel.WarningType.ForcedSty le; 868 event.warning = WebInspector.TimelineModel.WarningType.ForcedSty le;
861 break; 869 break;
862 870
863 case recordTypes.ScheduleStyleInvalidationTracking: 871 case recordTypes.ScheduleStyleInvalidationTracking:
864 case recordTypes.StyleRecalcInvalidationTracking: 872 case recordTypes.StyleRecalcInvalidationTracking:
865 case recordTypes.StyleInvalidatorInvalidationTracking: 873 case recordTypes.StyleInvalidatorInvalidationTracking:
866 case recordTypes.LayoutInvalidationTracking: 874 case recordTypes.LayoutInvalidationTracking:
867 case recordTypes.LayerInvalidationTracking: 875 case recordTypes.LayerInvalidationTracking:
868 case recordTypes.PaintInvalidationTracking: 876 case recordTypes.PaintInvalidationTracking:
869 case recordTypes.ScrollInvalidationTracking: 877 case recordTypes.ScrollInvalidationTracking:
870 this._invalidationTracker.addInvalidation(new WebInspector.Invalidat ionTrackingEvent(event)); 878 this._invalidationTracker.addInvalidation(new WebInspector.Invalidat ionTrackingEvent(event));
871 break; 879 break;
872 880
873 case recordTypes.InvalidateLayout: 881 case recordTypes.InvalidateLayout:
874 // Consider style recalculation as a reason for layout invalidation, 882 // Consider style recalculation as a reason for layout invalidation,
875 // but only if we had no earlier layout invalidation records. 883 // but only if we had no earlier layout invalidation records.
876 var layoutInitator = event; 884 var layoutInitator = event;
877 var frameId = event.args["data"]["frame"]; 885 var frameId = eventData["frame"];
878 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE vent && this._lastRecalculateStylesEvent.endTime > event.startTime) 886 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE vent && this._lastRecalculateStylesEvent.endTime > event.startTime)
879 layoutInitator = this._lastRecalculateStylesEvent.initiator; 887 layoutInitator = this._lastRecalculateStylesEvent.initiator;
880 this._layoutInvalidate[frameId] = layoutInitator; 888 this._layoutInvalidate[frameId] = layoutInitator;
881 break; 889 break;
882 890
883 case recordTypes.Layout: 891 case recordTypes.Layout:
884 this._invalidationTracker.didLayout(event); 892 this._invalidationTracker.didLayout(event);
885 var frameId = event.args["beginData"]["frame"]; 893 var frameId = event.args["beginData"]["frame"];
886 event.initiator = this._layoutInvalidate[frameId]; 894 event.initiator = this._layoutInvalidate[frameId];
887 // In case we have no closing Layout event, endData is not available . 895 // In case we have no closing Layout event, endData is not available .
888 if (event.args["endData"]) { 896 if (event.args["endData"]) {
889 event.backendNodeId = event.args["endData"]["rootNode"]; 897 event.backendNodeId = event.args["endData"]["rootNode"];
890 event.highlightQuad = event.args["endData"]["root"]; 898 event.highlightQuad = event.args["endData"]["root"];
891 } 899 }
892 this._layoutInvalidate[frameId] = null; 900 this._layoutInvalidate[frameId] = null;
893 if (this._currentScriptEvent) 901 if (this._currentScriptEvent)
894 event.warning = WebInspector.TimelineModel.WarningType.ForcedLay out; 902 event.warning = WebInspector.TimelineModel.WarningType.ForcedLay out;
895 break; 903 break;
896 904
905 case recordTypes.FunctionCall:
906 // Compatibility with old format.
907 if (typeof eventData["scriptName"] === "string")
908 eventData["url"] = eventData["scriptName"];
909 if (typeof eventData["scriptLine"] === "number")
910 eventData["lineNumber"] = eventData["scriptLine"];
911 // Fallthrough.
897 case recordTypes.EvaluateScript: 912 case recordTypes.EvaluateScript:
898 case recordTypes.FunctionCall: 913 case recordTypes.CompileScript:
914 if (typeof eventData["lineNumber"] === "number")
915 --eventData["lineNumber"];
916 if (typeof eventData["columnNumber"] === "number")
917 --eventData["columnNumber"];
899 if (!this._currentScriptEvent) 918 if (!this._currentScriptEvent)
900 this._currentScriptEvent = event; 919 this._currentScriptEvent = event;
901 break; 920 break;
902 921
903 case recordTypes.SetLayerTreeId: 922 case recordTypes.SetLayerTreeId:
904 this._inspectedTargetLayerTreeId = event.args["layerTreeId"] || even t.args["data"]["layerTreeId"]; 923 this._inspectedTargetLayerTreeId = event.args["layerTreeId"] || even t.args["data"]["layerTreeId"];
905 break; 924 break;
906 925
907 case recordTypes.Paint: 926 case recordTypes.Paint:
908 this._invalidationTracker.didPaint(event); 927 this._invalidationTracker.didPaint(event);
909 event.highlightQuad = event.args["data"]["clip"]; 928 event.highlightQuad = eventData["clip"];
910 event.backendNodeId = event.args["data"]["nodeId"]; 929 event.backendNodeId = eventData["nodeId"];
911 // Only keep layer paint events, skip paints for subframes that get painted to the same layer as parent. 930 // Only keep layer paint events, skip paints for subframes that get painted to the same layer as parent.
912 if (!event.args["data"]["layerId"]) 931 if (!eventData["layerId"])
913 break; 932 break;
914 var layerId = event.args["data"]["layerId"]; 933 var layerId = eventData["layerId"];
915 this._lastPaintForLayer[layerId] = event; 934 this._lastPaintForLayer[layerId] = event;
916 break; 935 break;
917 936
918 case recordTypes.DisplayItemListSnapshot: 937 case recordTypes.DisplayItemListSnapshot:
919 case recordTypes.PictureSnapshot: 938 case recordTypes.PictureSnapshot:
920 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay er); 939 var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLay er);
921 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th is._inspectedTargetLayerTreeId) 940 if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== th is._inspectedTargetLayerTreeId)
922 break; 941 break;
923 var paintEvent = this._lastPaintForLayer[layerUpdateEvent.args["laye rId"]]; 942 var paintEvent = this._lastPaintForLayer[layerUpdateEvent.args["laye rId"]];
924 if (paintEvent) 943 if (paintEvent)
925 paintEvent.picture = event; 944 paintEvent.picture = event;
926 break; 945 break;
927 946
928 case recordTypes.ScrollLayer: 947 case recordTypes.ScrollLayer:
929 event.backendNodeId = event.args["data"]["nodeId"]; 948 event.backendNodeId = eventData["nodeId"];
930 break; 949 break;
931 950
932 case recordTypes.PaintImage: 951 case recordTypes.PaintImage:
933 event.backendNodeId = event.args["data"]["nodeId"]; 952 event.backendNodeId = eventData["nodeId"];
934 event.url = event.args["data"]["url"]; 953 event.url = eventData["url"];
935 break; 954 break;
936 955
937 case recordTypes.DecodeImage: 956 case recordTypes.DecodeImage:
938 case recordTypes.ResizeImage: 957 case recordTypes.ResizeImage:
939 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage ); 958 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage );
940 if (!paintImageEvent) { 959 if (!paintImageEvent) {
941 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType s.DecodeLazyPixelRef); 960 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType s.DecodeLazyPixelRef);
942 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]]; 961 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]];
943 } 962 }
944 if (!paintImageEvent) 963 if (!paintImageEvent)
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 /** @type {?Array.<!Object.<string, number>>} */ 1459 /** @type {?Array.<!Object.<string, number>>} */
1441 this.invalidationList = eventData["invalidationList"]; 1460 this.invalidationList = eventData["invalidationList"];
1442 /** @type {!WebInspector.InvalidationCause} */ 1461 /** @type {!WebInspector.InvalidationCause} */
1443 this.cause = {reason: eventData["reason"], stackTrace: eventData["stackTrace "]}; 1462 this.cause = {reason: eventData["reason"], stackTrace: eventData["stackTrace "]};
1444 1463
1445 // FIXME: Move this to TimelineUIUtils.js. 1464 // FIXME: Move this to TimelineUIUtils.js.
1446 if (!this.cause.reason && this.cause.stackTrace && this.type === WebInspecto r.TimelineModel.RecordType.LayoutInvalidationTracking) 1465 if (!this.cause.reason && this.cause.stackTrace && this.type === WebInspecto r.TimelineModel.RecordType.LayoutInvalidationTracking)
1447 this.cause.reason = "Layout forced"; 1466 this.cause.reason = "Layout forced";
1448 } 1467 }
1449 1468
1450 /** @typedef {{reason: string, stackTrace: ?Array.<!RuntimeAgent.CallFrame>}} */ 1469 /** @typedef {{reason: string, stackTrace: ?Array<!RuntimeAgent.CallFrame>}} */
1451 WebInspector.InvalidationCause; 1470 WebInspector.InvalidationCause;
1452 1471
1453 /** 1472 /**
1454 * @constructor 1473 * @constructor
1455 */ 1474 */
1456 WebInspector.InvalidationTracker = function() 1475 WebInspector.InvalidationTracker = function()
1457 { 1476 {
1458 this._initializePerFrameState(); 1477 this._initializePerFrameState();
1459 } 1478 }
1460 1479
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
1759 if (!id) 1778 if (!id)
1760 return; 1779 return;
1761 /** @type {!Map<string, !WebInspector.TracingModel.Event>|undefined} */ 1780 /** @type {!Map<string, !WebInspector.TracingModel.Event>|undefined} */
1762 var initiatorMap = this._initiatorByType.get(initiatorType); 1781 var initiatorMap = this._initiatorByType.get(initiatorType);
1763 if (isInitiator) 1782 if (isInitiator)
1764 initiatorMap.set(id, event); 1783 initiatorMap.set(id, event);
1765 else 1784 else
1766 event.initiator = initiatorMap.get(id) || null; 1785 event.initiator = initiatorMap.get(id) || null;
1767 } 1786 }
1768 } 1787 }
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698