| Index: Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| diff --git a/Source/devtools/front_end/timeline/TimelineFrameModel.js b/Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| index 34246841d94e665f5fcd339e19142917c66cd31e..b09f3fb259cd70a9781cf313c5213ba9fdfcd92f 100644
|
| --- a/Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| +++ b/Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| @@ -142,13 +142,12 @@ WebInspector.TimelineFrameModel.prototype = {
|
| },
|
|
|
| /**
|
| - * @param {!WebInspector.TracingModel} tracingModel
|
| + * @param {!Array.<!WebInspector.TracingModel.Event>} events
|
| + * @param {string} sessionId
|
| */
|
| - addTraceEvents: function(tracingModel)
|
| + addTraceEvents: function(events, sessionId)
|
| {
|
| - // FIXME: we also need to process main thread events, so we can assign time spent by categories
|
| - // to frames. However, this requires that we can map trace event names to Timeline categories.
|
| - var events = tracingModel.frameLifecycleEvents();
|
| + this._sessionId = sessionId;
|
| for (var i = 0; i < events.length; ++i)
|
| this._addTraceEvent(events[i]);
|
| },
|
| @@ -158,9 +157,22 @@ WebInspector.TimelineFrameModel.prototype = {
|
| */
|
| _addTraceEvent: function(event)
|
| {
|
| - var timestamp = event.startTime / 1000;
|
| - var eventNames = WebInspector.TracingModel.TraceEventName;
|
| + var eventNames = WebInspector.TimelineTraceEventBindings.RecordType;
|
| +
|
| + if (event.name === eventNames.SetLayerTreeId) {
|
| + if (this._sessionId === event.args["sessionId"])
|
| + this._layerTreeId = event.args["layerTreeId"];
|
| + return;
|
| + }
|
| + if (event.phase === WebInspector.TracingModel.Phase.SnapshotObject && event.name === eventNames.LayerTreeHostImplSnapshot && parseInt(event.id, 0) === this._layerTreeId) {
|
| + this.handleLayerTreeSnapshot(new WebInspector.DeferredTracingLayerTree(this.target(), event.args["snapshot"]["active_tree"]["root_layer"]));
|
| + return;
|
| + }
|
| +
|
| + if (event.args["layerTreeId"] !== this._layerTreeId)
|
| + return;
|
|
|
| + var timestamp = event.startTime / 1000;
|
| if (event.name === eventNames.BeginFrame)
|
| this.handleBeginFrame(timestamp);
|
| else if (event.name === eventNames.DrawFrame)
|
| @@ -171,8 +183,9 @@ WebInspector.TimelineFrameModel.prototype = {
|
| this.handleRequestMainThreadFrame();
|
| else if (event.name === eventNames.CompositeLayers)
|
| this.handleCompositeLayers();
|
| - else if (event.name === eventNames.LayerTreeHostImplSnapshot)
|
| - this.handleLayerTreeSnapshot(new WebInspector.DeferredTracingLayerTree(this.target(), event.args["snapshot"]["active_tree"]["root_layer"]));
|
| +
|
| + // FIXME: we also need to process main thread events, so we can assign time spent by categories
|
| + // to frames. However, this requires that we can map trace event names to Timeline categories.
|
| },
|
|
|
| /**
|
|
|