| 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;
|
|
|
| /**
|
|
|