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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js
index d07746f7212e5dd96d727d6f111fd009c8e134f1..0c1fece45d0aa5e9223139f07af38ff4c34628df 100644
--- a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineModel.js
@@ -831,8 +831,16 @@ WebInspector.TimelineModel.prototype = {
this._currentScriptEvent = null;
var eventData = event.args["data"] || event.args["beginData"] || {};
- if (eventData && eventData["stackTrace"])
+ if (eventData["stackTrace"])
event.stackTrace = eventData["stackTrace"];
+ if (event.stackTrace && event.name !== recordTypes.JSSample) {
+ // TraceEvents come with 1-based line & column numbers. The frontend code
+ // requires 0-based ones. Adjust the values.
+ for (var i = 0; i < event.stackTrace.length; ++i) {
+ --event.stackTrace[i].lineNumber;
+ --event.stackTrace[i].columnNumber;
+ }
+ }
if (eventStack.length && eventStack.peekLast().name === recordTypes.EventDispatch)
eventStack.peekLast().hasChildren = true;
@@ -842,12 +850,12 @@ WebInspector.TimelineModel.prototype = {
switch (event.name) {
case recordTypes.ResourceSendRequest:
case recordTypes.WebSocketCreate:
- event.url = event.args["data"]["url"];
+ event.url = eventData["url"];
event.initiator = eventStack.peekLast() || null;
break;
case recordTypes.ScheduleStyleRecalculation:
- this._lastScheduleStyleRecalculation[event.args["data"]["frame"]] = event;
+ this._lastScheduleStyleRecalculation[eventData["frame"]] = event;
break;
case recordTypes.UpdateLayoutTree:
@@ -874,7 +882,7 @@ WebInspector.TimelineModel.prototype = {
// Consider style recalculation as a reason for layout invalidation,
// but only if we had no earlier layout invalidation records.
var layoutInitator = event;
- var frameId = event.args["data"]["frame"];
+ var frameId = eventData["frame"];
if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesEvent && this._lastRecalculateStylesEvent.endTime > event.startTime)
layoutInitator = this._lastRecalculateStylesEvent.initiator;
this._layoutInvalidate[frameId] = layoutInitator;
@@ -894,8 +902,19 @@ WebInspector.TimelineModel.prototype = {
event.warning = WebInspector.TimelineModel.WarningType.ForcedLayout;
break;
- case recordTypes.EvaluateScript:
case recordTypes.FunctionCall:
+ // Compatibility with old format.
+ if (typeof eventData["scriptName"] === "string")
+ eventData["url"] = eventData["scriptName"];
+ if (typeof eventData["scriptLine"] === "number")
+ eventData["lineNumber"] = eventData["scriptLine"];
+ // Fallthrough.
+ case recordTypes.EvaluateScript:
+ case recordTypes.CompileScript:
+ if (typeof eventData["lineNumber"] === "number")
+ --eventData["lineNumber"];
+ if (typeof eventData["columnNumber"] === "number")
+ --eventData["columnNumber"];
if (!this._currentScriptEvent)
this._currentScriptEvent = event;
break;
@@ -906,12 +925,12 @@ WebInspector.TimelineModel.prototype = {
case recordTypes.Paint:
this._invalidationTracker.didPaint(event);
- event.highlightQuad = event.args["data"]["clip"];
- event.backendNodeId = event.args["data"]["nodeId"];
+ event.highlightQuad = eventData["clip"];
+ event.backendNodeId = eventData["nodeId"];
// Only keep layer paint events, skip paints for subframes that get painted to the same layer as parent.
- if (!event.args["data"]["layerId"])
+ if (!eventData["layerId"])
break;
- var layerId = event.args["data"]["layerId"];
+ var layerId = eventData["layerId"];
this._lastPaintForLayer[layerId] = event;
break;
@@ -926,12 +945,12 @@ WebInspector.TimelineModel.prototype = {
break;
case recordTypes.ScrollLayer:
- event.backendNodeId = event.args["data"]["nodeId"];
+ event.backendNodeId = eventData["nodeId"];
break;
case recordTypes.PaintImage:
- event.backendNodeId = event.args["data"]["nodeId"];
- event.url = event.args["data"]["url"];
+ event.backendNodeId = eventData["nodeId"];
+ event.url = eventData["url"];
break;
case recordTypes.DecodeImage:
@@ -1447,7 +1466,7 @@ WebInspector.InvalidationTrackingEvent = function(event)
this.cause.reason = "Layout forced";
}
-/** @typedef {{reason: string, stackTrace: ?Array.<!RuntimeAgent.CallFrame>}} */
+/** @typedef {{reason: string, stackTrace: ?Array<!RuntimeAgent.CallFrame>}} */
WebInspector.InvalidationCause;
/**
« 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