Index: Source/devtools/front_end/timeline/TimelineTraceEventBindings.js |
diff --git a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js |
index 327f5e7fc0d69cdd5c9160ef870aa32db85c9742..8640f1adc31b6d17d4d0887e894282b757fc1901 100644 |
--- a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js |
+++ b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js |
@@ -7,10 +7,96 @@ |
*/ |
WebInspector.TimelineTraceEventBindings = function() |
{ |
- this._resetProcessingState(); |
+ this._reset(); |
} |
+WebInspector.TimelineTraceEventBindings.RecordType = { |
+ Program: "Program", |
+ EventDispatch: "EventDispatch", |
+ |
+ GPUTask: "GPUTask", |
+ |
+ RequestMainThreadFrame: "RequestMainThreadFrame", |
+ BeginFrame: "BeginFrame", |
+ BeginMainThreadFrame: "BeginMainThreadFrame", |
+ ActivateLayerTree: "ActivateLayerTree", |
+ DrawFrame: "DrawFrame", |
+ ScheduleStyleRecalculation: "ScheduleStyleRecalculation", |
+ RecalculateStyles: "RecalculateStyles", |
+ InvalidateLayout: "InvalidateLayout", |
+ Layout: "Layout", |
+ UpdateLayerTree: "UpdateLayerTree", |
+ PaintSetup: "PaintSetup", |
+ Paint: "Paint", |
+ Rasterize: "Rasterize", |
+ RasterTask: "RasterTask", |
+ ScrollLayer: "ScrollLayer", |
+ DecodeImage: "DecodeImage", |
+ ResizeImage: "ResizeImage", |
+ CompositeLayers: "CompositeLayers", |
+ |
+ ParseHTML: "ParseHTML", |
+ |
+ TimerInstall: "TimerInstall", |
+ TimerRemove: "TimerRemove", |
+ TimerFire: "TimerFire", |
+ |
+ XHRReadyStateChange: "XHRReadyStateChange", |
+ XHRLoad: "XHRLoad", |
+ EvaluateScript: "EvaluateScript", |
+ |
+ MarkLoad: "MarkLoad", |
+ MarkDOMContent: "MarkDOMContent", |
+ MarkFirstPaint: "MarkFirstPaint", |
+ |
+ TimeStamp: "TimeStamp", |
+ ConsoleTime: "ConsoleTime", |
+ |
+ ResourceSendRequest: "ResourceSendRequest", |
+ ResourceReceiveResponse: "ResourceReceiveResponse", |
+ ResourceReceivedData: "ResourceReceivedData", |
+ ResourceFinish: "ResourceFinish", |
+ |
+ FunctionCall: "FunctionCall", |
+ GCEvent: "GCEvent", |
+ JSFrame: "JSFrame", |
+ |
+ UpdateCounters: "UpdateCounters", |
+ |
+ RequestAnimationFrame: "RequestAnimationFrame", |
+ CancelAnimationFrame: "CancelAnimationFrame", |
+ FireAnimationFrame: "FireAnimationFrame", |
+ |
+ WebSocketCreate : "WebSocketCreate", |
+ WebSocketSendHandshakeRequest : "WebSocketSendHandshakeRequest", |
+ WebSocketReceiveHandshakeResponse : "WebSocketReceiveHandshakeResponse", |
+ WebSocketDestroy : "WebSocketDestroy", |
+ |
+ EmbedderCallback : "EmbedderCallback", |
+ |
+ CallStack: "CallStack", |
+ SetLayerTreeId: "SetLayerTreeId", |
+ TracingStartedInPage: "TracingStartedInPage", |
+ |
+ LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl" |
+}; |
+ |
+ |
WebInspector.TimelineTraceEventBindings.prototype = { |
+ /** |
+ * @return {!Array.<!WebInspector.TracingModel.Event>} |
+ */ |
+ mainThreadEvents: function() |
+ { |
+ return this._mainThreadEvents; |
+ }, |
+ |
+ _reset: function() |
+ { |
+ this._resetProcessingState(); |
+ this._mainThreadEvents = []; |
+ }, |
+ |
_resetProcessingState: function() |
{ |
this._sendRequestEvents = {}; |
@@ -22,7 +108,6 @@ WebInspector.TimelineTraceEventBindings.prototype = { |
this._lastRecalculateStylesEvent = null; |
this._currentScriptEvent = null; |
- this._lastMainThreadEvent = null; |
this._eventStack = []; |
}, |
@@ -33,13 +118,16 @@ WebInspector.TimelineTraceEventBindings.prototype = { |
{ |
this._resetProcessingState(); |
for (var i = 0, length = events.length; i < length; i++) |
- this._processMainThreadEvent(events[i]); |
+ this._processEvent(events[i]); |
this._resetProcessingState(); |
}, |
- _processMainThreadEvent: function(event) |
+ /** |
+ * @param {!WebInspector.TracingModel.Event} event |
+ */ |
+ _processEvent: function(event) |
{ |
- var recordTypes = WebInspector.TimelineModel.RecordType; |
+ var recordTypes = WebInspector.TimelineTraceEventBindings.RecordType; |
var eventStack = this._eventStack; |
while (eventStack.length && eventStack.peekLast().endTime < event.startTime) |
@@ -59,9 +147,10 @@ WebInspector.TimelineTraceEventBindings.prototype = { |
switch (event.name) { |
case recordTypes.CallStack: |
- if (this._lastMainThreadEvent) |
- this._lastMainThreadEvent.stackTrace = event.args.stack; |
- break |
+ var lastMainThreadEvent = this._mainThreadEvents.peekLast(); |
+ if (lastMainThreadEvent) |
+ lastMainThreadEvent.stackTrace = event.args.stack; |
+ break; |
case recordTypes.ResourceSendRequest: |
this._sendRequestEvents[event.args.data["requestId"]] = event; |
@@ -126,13 +215,22 @@ WebInspector.TimelineTraceEventBindings.prototype = { |
event.initiator = this._webSocketCreateEvents[event.args.data["identifier"]]; |
break; |
- case WebInspector.TimelineModel.RecordType.EvaluateScript: |
- case WebInspector.TimelineModel.RecordType.FunctionCall: |
+ case recordTypes.EvaluateScript: |
+ case recordTypes.FunctionCall: |
if (!this._currentScriptEvent) |
this._currentScriptEvent = event; |
break; |
+ |
+ case recordTypes.SetLayerTreeId: |
+ this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; |
+ break; |
+ |
+ case recordTypes.TracingStartedInPage: |
+ this._mainThread = event.thread; |
+ break; |
} |
- this._lastMainThreadEvent = event; |
+ if (this._mainThread === event.thread) |
+ this._mainThreadEvents.push(event); |
} |
} |