| 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 13383635664f49c37353dba8fe66709e141ef267..d546fc3b51d461e26cdd1f72090df46f5a46bf95 100644
|
| --- a/Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| +++ b/Source/devtools/front_end/timeline/TimelineFrameModel.js
|
| @@ -230,12 +230,21 @@ WebInspector.TracingTimelineFrameModel._mainFrameMarkers = [
|
| ];
|
|
|
| WebInspector.TracingTimelineFrameModel.prototype = {
|
| + reset: function()
|
| + {
|
| + WebInspector.TimelineFrameModelBase.prototype.reset.call(this);
|
| + this._target = null;
|
| + this._sessionId = null;
|
| + },
|
| +
|
| /**
|
| + * @param {?WebInspector.Target} target
|
| * @param {!Array.<!WebInspector.TracingModel.Event>} events
|
| * @param {string} sessionId
|
| */
|
| - addTraceEvents: function(events, sessionId)
|
| + addTraceEvents: function(target, events, sessionId)
|
| {
|
| + this._target = target;
|
| this._sessionId = sessionId;
|
| if (!events.length)
|
| return;
|
| @@ -255,16 +264,16 @@ WebInspector.TracingTimelineFrameModel.prototype = {
|
| if (event.name === eventNames.SetLayerTreeId) {
|
| if (this._sessionId === event.args["sessionId"])
|
| this._layerTreeId = event.args["layerTreeId"];
|
| - return;
|
| - }
|
| - if (event.name === eventNames.TracingStartedInPage) {
|
| + } else if (event.name === eventNames.TracingStartedInPage) {
|
| this._mainThread = event.thread;
|
| - return;
|
| - }
|
| - if (event.thread === this._mainThread)
|
| + } else if (event.phase === WebInspector.TracingModel.Phase.SnapshotObject && event.name === eventNames.LayerTreeHostImplSnapshot && parseInt(event.id, 0) === this._layerTreeId) {
|
| + var snapshot = /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (event);
|
| + this.handleLayerTreeSnapshot(new WebInspector.DeferredTracingLayerTree(snapshot, this._target));
|
| + } else if (event.thread === this._mainThread) {
|
| this._addMainThreadTraceEvent(event);
|
| - else
|
| + } else {
|
| this._addBackgroundTraceEvent(event);
|
| + }
|
| },
|
|
|
| /**
|
| @@ -273,11 +282,6 @@ WebInspector.TracingTimelineFrameModel.prototype = {
|
| _addBackgroundTraceEvent: function(event)
|
| {
|
| var eventNames = WebInspector.TimelineModel.RecordType;
|
| - if (event.phase === WebInspector.TracingModel.Phase.SnapshotObject && event.name === eventNames.LayerTreeHostImplSnapshot && parseInt(event.id, 0) === this._layerTreeId) {
|
| - var snapshot = /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (event);
|
| - this.handleLayerTreeSnapshot(new WebInspector.DeferredTracingLayerTree(snapshot));
|
| - return;
|
| - }
|
| if (this._lastFrame && event.selfTime)
|
| this._lastFrame._addTimeForCategory(WebInspector.TimelineUIUtils.eventStyle(event).category.name, event.selfTime);
|
|
|
| @@ -321,8 +325,8 @@ WebInspector.TracingTimelineFrameModel.prototype = {
|
| this._framePendingCommit = new WebInspector.PendingFrame();
|
| if (!this._framePendingCommit)
|
| return;
|
| - if (event.name === eventNames.Paint && event.args["data"]["layerId"] && event.picture)
|
| - this._framePendingCommit.paints.push(new WebInspector.LayerPaintEvent(event));
|
| + if (event.name === eventNames.Paint && event.args["data"]["layerId"] && event.picture && this._target)
|
| + this._framePendingCommit.paints.push(new WebInspector.LayerPaintEvent(event, this._target));
|
|
|
| if (selfTime) {
|
| var categoryName = WebInspector.TimelineUIUtils.eventStyle(event).category.name;
|
| @@ -339,10 +343,11 @@ WebInspector.TracingTimelineFrameModel.prototype = {
|
| * @constructor
|
| * @extends {WebInspector.DeferredLayerTree}
|
| * @param {!WebInspector.TracingModel.ObjectSnapshot} snapshot
|
| + * @param {?WebInspector.Target} target
|
| */
|
| -WebInspector.DeferredTracingLayerTree = function(snapshot)
|
| +WebInspector.DeferredTracingLayerTree = function(snapshot, target)
|
| {
|
| - WebInspector.DeferredLayerTree.call(this, snapshot.thread.target());
|
| + WebInspector.DeferredLayerTree.call(this, target);
|
| this._snapshot = snapshot;
|
| }
|
|
|
| @@ -427,7 +432,6 @@ WebInspector.TimelineFrame = function(startTime, startTimeOffset)
|
| this.cpuTime = 0;
|
| /** @type {?WebInspector.DeferredLayerTree} */
|
| this.layerTree = null;
|
| - this.paintTiles = null;
|
| }
|
|
|
| WebInspector.TimelineFrame.prototype = {
|
| @@ -471,10 +475,12 @@ WebInspector.TimelineFrame.prototype = {
|
| /**
|
| * @constructor
|
| * @param {!WebInspector.TracingModel.Event} event
|
| + * @param {?WebInspector.Target} target
|
| */
|
| -WebInspector.LayerPaintEvent = function(event)
|
| +WebInspector.LayerPaintEvent = function(event, target)
|
| {
|
| this._event = event;
|
| + this._target = target;
|
| }
|
|
|
| WebInspector.LayerPaintEvent.prototype = {
|
| @@ -499,19 +505,19 @@ WebInspector.LayerPaintEvent.prototype = {
|
| */
|
| loadPicture: function(callback)
|
| {
|
| - var target = this._event.thread.target();
|
| - this._event.picture.requestObject(onGotObject);
|
| + this._event.picture.requestObject(onGotObject.bind(this));
|
| /**
|
| * @param {?Object} result
|
| + * @this {WebInspector.LayerPaintEvent}
|
| */
|
| function onGotObject(result)
|
| {
|
| - if (!result || !result["skp64"] || !target) {
|
| + if (!result || !result["skp64"] || !this._target) {
|
| callback(null, null);
|
| return;
|
| }
|
| var rect = result["params"] && result["params"]["layer_rect"];
|
| - WebInspector.PaintProfilerSnapshot.load(target, result["skp64"], callback.bind(null, rect));
|
| + WebInspector.PaintProfilerSnapshot.load(this._target, result["skp64"], callback.bind(null, rect));
|
| }
|
| }
|
| };
|
|
|