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

Unified Diff: third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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
Index: third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js
index 26565df2414b8ebc6f1f3888c4b8ec9e03485adc..9a425fc3cb40fb605f7786ff84e003a3220a0475 100644
--- a/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/timeline_model/TimelineFrameModel.js
@@ -27,418 +27,399 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
/**
- * @constructor
- * @param {function(!WebInspector.TracingModel.Event):string} categoryMapper
+ * @unrestricted
*/
-WebInspector.TimelineFrameModel = function(categoryMapper)
-{
+WebInspector.TimelineFrameModel = class {
+ /**
+ * @param {function(!WebInspector.TracingModel.Event):string} categoryMapper
+ */
+ constructor(categoryMapper) {
this._categoryMapper = categoryMapper;
this.reset();
-};
-
-WebInspector.TimelineFrameModel._mainFrameMarkers = [
- WebInspector.TimelineModel.RecordType.ScheduleStyleRecalculation,
- WebInspector.TimelineModel.RecordType.InvalidateLayout,
- WebInspector.TimelineModel.RecordType.BeginMainThreadFrame,
- WebInspector.TimelineModel.RecordType.ScrollLayer
-];
-
-WebInspector.TimelineFrameModel.prototype = {
- /**
- * @return {!Array.<!WebInspector.TimelineFrame>}
- */
- frames: function()
- {
- return this._frames;
- },
-
- /**
- * @param {number} startTime
- * @param {number} endTime
- * @return {!Array.<!WebInspector.TimelineFrame>}
- */
- filteredFrames: function(startTime, endTime)
- {
- /**
- * @param {number} value
- * @param {!WebInspector.TimelineFrame} object
- * @return {number}
- */
- function compareStartTime(value, object)
- {
- return value - object.startTime;
- }
- /**
- * @param {number} value
- * @param {!WebInspector.TimelineFrame} object
- * @return {number}
- */
- function compareEndTime(value, object)
- {
- return value - object.endTime;
- }
- var frames = this._frames;
- var firstFrame = frames.lowerBound(startTime, compareEndTime);
- var lastFrame = frames.lowerBound(endTime, compareStartTime);
- return frames.slice(firstFrame, lastFrame);
- },
-
- /**
- * @param {!WebInspector.TracingModel.Event} rasterTask
- * @return {boolean}
- */
- hasRasterTile: function(rasterTask)
- {
- var data = rasterTask.args["tileData"];
- if (!data)
- return false;
- var frameId = data["sourceFrameNumber"];
- var frame = frameId && this._frameById[frameId];
- if (!frame || !frame.layerTree)
- return false;
- return true;
- },
-
- /**
- * @param {!WebInspector.TracingModel.Event} rasterTask
- * @return Promise<?{rect: !DOMAgent.Rect, snapshot: !WebInspector.PaintProfilerSnapshot}>}
- */
- rasterTilePromise: function(rasterTask)
- {
- if (!this._target)
- return Promise.resolve(null);
- var data = rasterTask.args["tileData"];
- var frameId = data["sourceFrameNumber"];
- var tileId = data["tileId"] && data["tileId"]["id_ref"];
- var frame = frameId && this._frameById[frameId];
- if (!frame || !frame.layerTree || !tileId)
- return Promise.resolve(null);
-
- return frame.layerTree.layerTreePromise().then(layerTree => layerTree && layerTree.pictureForRasterTile(tileId));
- },
-
- reset: function()
- {
- this._minimumRecordTime = Infinity;
- this._frames = [];
- this._frameById = {};
- this._lastFrame = null;
- this._lastLayerTree = null;
- this._mainFrameCommitted = false;
- this._mainFrameRequested = false;
- this._framePendingCommit = null;
- this._lastBeginFrame = null;
- this._lastNeedsBeginFrame = null;
- this._framePendingActivation = null;
- this._lastTaskBeginTime = null;
- this._target = null;
- this._sessionId = null;
- this._currentTaskTimeByCategory = {};
- },
-
+ }
+
+ /**
+ * @return {!Array.<!WebInspector.TimelineFrame>}
+ */
+ frames() {
+ return this._frames;
+ }
+
+ /**
+ * @param {number} startTime
+ * @param {number} endTime
+ * @return {!Array.<!WebInspector.TimelineFrame>}
+ */
+ filteredFrames(startTime, endTime) {
/**
- * @param {number} startTime
+ * @param {number} value
+ * @param {!WebInspector.TimelineFrame} object
+ * @return {number}
*/
- handleBeginFrame: function(startTime)
- {
- if (!this._lastFrame)
- this._startFrame(startTime);
- this._lastBeginFrame = startTime;
- },
-
+ function compareStartTime(value, object) {
+ return value - object.startTime;
+ }
/**
- * @param {number} startTime
+ * @param {number} value
+ * @param {!WebInspector.TimelineFrame} object
+ * @return {number}
*/
- handleDrawFrame: function(startTime)
- {
- if (!this._lastFrame) {
- this._startFrame(startTime);
- return;
- }
+ function compareEndTime(value, object) {
+ return value - object.endTime;
+ }
+ var frames = this._frames;
+ var firstFrame = frames.lowerBound(startTime, compareEndTime);
+ var lastFrame = frames.lowerBound(endTime, compareStartTime);
+ return frames.slice(firstFrame, lastFrame);
+ }
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} rasterTask
+ * @return {boolean}
+ */
+ hasRasterTile(rasterTask) {
+ var data = rasterTask.args['tileData'];
+ if (!data)
+ return false;
+ var frameId = data['sourceFrameNumber'];
+ var frame = frameId && this._frameById[frameId];
+ if (!frame || !frame.layerTree)
+ return false;
+ return true;
+ }
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} rasterTask
+ * @return Promise<?{rect: !DOMAgent.Rect, snapshot: !WebInspector.PaintProfilerSnapshot}>}
+ */
+ rasterTilePromise(rasterTask) {
+ if (!this._target)
+ return Promise.resolve(null);
+ var data = rasterTask.args['tileData'];
+ var frameId = data['sourceFrameNumber'];
+ var tileId = data['tileId'] && data['tileId']['id_ref'];
+ var frame = frameId && this._frameById[frameId];
+ if (!frame || !frame.layerTree || !tileId)
+ return Promise.resolve(null);
+
+ return frame.layerTree.layerTreePromise().then(layerTree => layerTree && layerTree.pictureForRasterTile(tileId));
+ }
+
+ reset() {
+ this._minimumRecordTime = Infinity;
+ this._frames = [];
+ this._frameById = {};
+ this._lastFrame = null;
+ this._lastLayerTree = null;
+ this._mainFrameCommitted = false;
+ this._mainFrameRequested = false;
+ this._framePendingCommit = null;
+ this._lastBeginFrame = null;
+ this._lastNeedsBeginFrame = null;
+ this._framePendingActivation = null;
+ this._lastTaskBeginTime = null;
+ this._target = null;
+ this._sessionId = null;
+ this._currentTaskTimeByCategory = {};
+ }
+
+ /**
+ * @param {number} startTime
+ */
+ handleBeginFrame(startTime) {
+ if (!this._lastFrame)
+ this._startFrame(startTime);
+ this._lastBeginFrame = startTime;
+ }
+
+ /**
+ * @param {number} startTime
+ */
+ handleDrawFrame(startTime) {
+ if (!this._lastFrame) {
+ this._startFrame(startTime);
+ return;
+ }
- // - if it wasn't drawn, it didn't happen!
- // - only show frames that either did not wait for the main thread frame or had one committed.
- if (this._mainFrameCommitted || !this._mainFrameRequested) {
- if (this._lastNeedsBeginFrame) {
- var idleTimeEnd = this._framePendingActivation ? this._framePendingActivation.triggerTime : (this._lastBeginFrame || this._lastNeedsBeginFrame);
- if (idleTimeEnd > this._lastFrame.startTime) {
- this._lastFrame.idle = true;
- this._startFrame(idleTimeEnd);
- if (this._framePendingActivation)
- this._commitPendingFrame();
- this._lastBeginFrame = null;
- }
- this._lastNeedsBeginFrame = null;
- }
- this._startFrame(startTime);
- }
- this._mainFrameCommitted = false;
- },
-
- handleActivateLayerTree: function()
- {
- if (!this._lastFrame)
- return;
- if (this._framePendingActivation && !this._lastNeedsBeginFrame)
+ // - if it wasn't drawn, it didn't happen!
+ // - only show frames that either did not wait for the main thread frame or had one committed.
+ if (this._mainFrameCommitted || !this._mainFrameRequested) {
+ if (this._lastNeedsBeginFrame) {
+ var idleTimeEnd = this._framePendingActivation ? this._framePendingActivation.triggerTime :
+ (this._lastBeginFrame || this._lastNeedsBeginFrame);
+ if (idleTimeEnd > this._lastFrame.startTime) {
+ this._lastFrame.idle = true;
+ this._startFrame(idleTimeEnd);
+ if (this._framePendingActivation)
this._commitPendingFrame();
- },
-
- handleRequestMainThreadFrame: function()
- {
- if (!this._lastFrame)
- return;
- this._mainFrameRequested = true;
- },
-
- handleCompositeLayers: function()
- {
- if (!this._framePendingCommit)
- return;
- this._framePendingActivation = this._framePendingCommit;
- this._framePendingCommit = null;
- this._mainFrameRequested = false;
- this._mainFrameCommitted = true;
- },
-
- /**
- * @param {!WebInspector.TracingFrameLayerTree} layerTree
- */
- handleLayerTreeSnapshot: function(layerTree)
- {
- this._lastLayerTree = layerTree;
- },
-
- /**
- * @param {number} startTime
- * @param {boolean} needsBeginFrame
- */
- handleNeedFrameChanged: function(startTime, needsBeginFrame)
- {
- if (needsBeginFrame)
- this._lastNeedsBeginFrame = startTime;
- },
-
- /**
- * @param {number} startTime
- */
- _startFrame: function(startTime)
- {
- if (this._lastFrame)
- this._flushFrame(this._lastFrame, startTime);
- this._lastFrame = new WebInspector.TimelineFrame(startTime, startTime - this._minimumRecordTime);
- },
-
- /**
- * @param {!WebInspector.TimelineFrame} frame
- * @param {number} endTime
- */
- _flushFrame: function(frame, endTime)
- {
- frame._setLayerTree(this._lastLayerTree);
- frame._setEndTime(endTime);
- if (this._lastLayerTree)
- this._lastLayerTree._setPaints(frame._paints);
- if (this._frames.length && (frame.startTime !== this._frames.peekLast().endTime || frame.startTime > frame.endTime))
- console.assert(false, `Inconsistent frame time for frame ${this._frames.length} (${frame.startTime} - ${frame.endTime})`);
- this._frames.push(frame);
- if (typeof frame._mainFrameId === "number")
- this._frameById[frame._mainFrameId] = frame;
- },
-
- _commitPendingFrame: function()
- {
- this._lastFrame._addTimeForCategories(this._framePendingActivation.timeByCategory);
- this._lastFrame._paints = this._framePendingActivation.paints;
- this._lastFrame._mainFrameId = this._framePendingActivation.mainFrameId;
- this._framePendingActivation = null;
- },
-
- /**
- * @param {!Array.<string>} types
- * @param {!WebInspector.TimelineModel.Record} record
- * @return {?WebInspector.TimelineModel.Record} record
- */
- _findRecordRecursively: function(types, record)
- {
- if (types.indexOf(record.type()) >= 0)
- return record;
- if (!record.children())
- return null;
- for (var i = 0; i < record.children().length; ++i) {
- var result = this._findRecordRecursively(types, record.children()[i]);
- if (result)
- return result;
+ this._lastBeginFrame = null;
}
- return null;
- },
-
- /**
- * @param {?WebInspector.Target} target
- * @param {!Array.<!WebInspector.TracingModel.Event>} events
- * @param {string} sessionId
- */
- addTraceEvents: function(target, events, sessionId)
- {
- this._target = target;
- this._sessionId = sessionId;
- if (!events.length)
- return;
- if (events[0].startTime < this._minimumRecordTime)
- this._minimumRecordTime = events[0].startTime;
- for (var i = 0; i < events.length; ++i)
- this._addTraceEvent(events[i]);
- },
-
- /**
- * @param {!WebInspector.TracingModel.Event} event
- */
- _addTraceEvent: function(event)
- {
- var eventNames = WebInspector.TimelineModel.RecordType;
-
- if (event.name === eventNames.SetLayerTreeId) {
- var sessionId = event.args["sessionId"] || event.args["data"]["sessionId"];
- if (this._sessionId === sessionId)
- this._layerTreeId = event.args["layerTreeId"] || event.args["data"]["layerTreeId"];
- } else if (event.name === eventNames.TracingStartedInPage) {
- this._mainThread = event.thread;
- } 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.TracingFrameLayerTree(this._target, snapshot));
- } else {
- this._processCompositorEvents(event);
- if (event.thread === this._mainThread)
- this._addMainThreadTraceEvent(event);
- else if (this._lastFrame && event.selfTime && !WebInspector.TracingModel.isTopLevelEvent(event))
- this._lastFrame._addTimeForCategory(this._categoryMapper(event), event.selfTime);
- }
- },
-
- /**
- * @param {!WebInspector.TracingModel.Event} event
- */
- _processCompositorEvents: function(event)
- {
- var eventNames = WebInspector.TimelineModel.RecordType;
-
- if (event.args["layerTreeId"] !== this._layerTreeId)
- return;
-
- var timestamp = event.startTime;
- if (event.name === eventNames.BeginFrame)
- this.handleBeginFrame(timestamp);
- else if (event.name === eventNames.DrawFrame)
- this.handleDrawFrame(timestamp);
- else if (event.name === eventNames.ActivateLayerTree)
- this.handleActivateLayerTree();
- else if (event.name === eventNames.RequestMainThreadFrame)
- this.handleRequestMainThreadFrame();
- else if (event.name === eventNames.NeedsBeginFrameChanged)
- this.handleNeedFrameChanged(timestamp, event.args["data"] && event.args["data"]["needsBeginFrame"]);
- },
-
- /**
- * @param {!WebInspector.TracingModel.Event} event
- */
- _addMainThreadTraceEvent: function(event)
- {
- var eventNames = WebInspector.TimelineModel.RecordType;
- var timestamp = event.startTime;
- var selfTime = event.selfTime || 0;
-
- if (WebInspector.TracingModel.isTopLevelEvent(event)) {
- this._currentTaskTimeByCategory = {};
- this._lastTaskBeginTime = event.startTime;
- }
- if (!this._framePendingCommit && WebInspector.TimelineFrameModel._mainFrameMarkers.indexOf(event.name) >= 0)
- this._framePendingCommit = new WebInspector.PendingFrame(this._lastTaskBeginTime || event.startTime, this._currentTaskTimeByCategory);
- if (!this._framePendingCommit) {
- this._addTimeForCategory(this._currentTaskTimeByCategory, event);
- return;
- }
- this._addTimeForCategory(this._framePendingCommit.timeByCategory, event);
-
- if (event.name === eventNames.BeginMainThreadFrame && event.args["data"] && event.args["data"]["frameId"])
- this._framePendingCommit.mainFrameId = event.args["data"]["frameId"];
- if (event.name === eventNames.Paint && event.args["data"]["layerId"] && event.picture && this._target)
- this._framePendingCommit.paints.push(new WebInspector.LayerPaintEvent(event, this._target));
- if (event.name === eventNames.CompositeLayers && event.args["layerTreeId"] === this._layerTreeId)
- this.handleCompositeLayers();
- },
-
- /**
- * @param {!Object.<string, number>} timeByCategory
- * @param {!WebInspector.TracingModel.Event} event
- */
- _addTimeForCategory: function(timeByCategory, event)
- {
- if (!event.selfTime)
- return;
- var categoryName = this._categoryMapper(event);
- timeByCategory[categoryName] = (timeByCategory[categoryName] || 0) + event.selfTime;
- },
+ this._lastNeedsBeginFrame = null;
+ }
+ this._startFrame(startTime);
+ }
+ this._mainFrameCommitted = false;
+ }
+
+ handleActivateLayerTree() {
+ if (!this._lastFrame)
+ return;
+ if (this._framePendingActivation && !this._lastNeedsBeginFrame)
+ this._commitPendingFrame();
+ }
+
+ handleRequestMainThreadFrame() {
+ if (!this._lastFrame)
+ return;
+ this._mainFrameRequested = true;
+ }
+
+ handleCompositeLayers() {
+ if (!this._framePendingCommit)
+ return;
+ this._framePendingActivation = this._framePendingCommit;
+ this._framePendingCommit = null;
+ this._mainFrameRequested = false;
+ this._mainFrameCommitted = true;
+ }
+
+ /**
+ * @param {!WebInspector.TracingFrameLayerTree} layerTree
+ */
+ handleLayerTreeSnapshot(layerTree) {
+ this._lastLayerTree = layerTree;
+ }
+
+ /**
+ * @param {number} startTime
+ * @param {boolean} needsBeginFrame
+ */
+ handleNeedFrameChanged(startTime, needsBeginFrame) {
+ if (needsBeginFrame)
+ this._lastNeedsBeginFrame = startTime;
+ }
+
+ /**
+ * @param {number} startTime
+ */
+ _startFrame(startTime) {
+ if (this._lastFrame)
+ this._flushFrame(this._lastFrame, startTime);
+ this._lastFrame = new WebInspector.TimelineFrame(startTime, startTime - this._minimumRecordTime);
+ }
+
+ /**
+ * @param {!WebInspector.TimelineFrame} frame
+ * @param {number} endTime
+ */
+ _flushFrame(frame, endTime) {
+ frame._setLayerTree(this._lastLayerTree);
+ frame._setEndTime(endTime);
+ if (this._lastLayerTree)
+ this._lastLayerTree._setPaints(frame._paints);
+ if (this._frames.length && (frame.startTime !== this._frames.peekLast().endTime || frame.startTime > frame.endTime))
+ console.assert(
+ false, `Inconsistent frame time for frame ${this._frames.length} (${frame.startTime} - ${frame.endTime})`);
+ this._frames.push(frame);
+ if (typeof frame._mainFrameId === 'number')
+ this._frameById[frame._mainFrameId] = frame;
+ }
+
+ _commitPendingFrame() {
+ this._lastFrame._addTimeForCategories(this._framePendingActivation.timeByCategory);
+ this._lastFrame._paints = this._framePendingActivation.paints;
+ this._lastFrame._mainFrameId = this._framePendingActivation.mainFrameId;
+ this._framePendingActivation = null;
+ }
+
+ /**
+ * @param {!Array.<string>} types
+ * @param {!WebInspector.TimelineModel.Record} record
+ * @return {?WebInspector.TimelineModel.Record} record
+ */
+ _findRecordRecursively(types, record) {
+ if (types.indexOf(record.type()) >= 0)
+ return record;
+ if (!record.children())
+ return null;
+ for (var i = 0; i < record.children().length; ++i) {
+ var result = this._findRecordRecursively(types, record.children()[i]);
+ if (result)
+ return result;
+ }
+ return null;
+ }
+
+ /**
+ * @param {?WebInspector.Target} target
+ * @param {!Array.<!WebInspector.TracingModel.Event>} events
+ * @param {string} sessionId
+ */
+ addTraceEvents(target, events, sessionId) {
+ this._target = target;
+ this._sessionId = sessionId;
+ if (!events.length)
+ return;
+ if (events[0].startTime < this._minimumRecordTime)
+ this._minimumRecordTime = events[0].startTime;
+ for (var i = 0; i < events.length; ++i)
+ this._addTraceEvent(events[i]);
+ }
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
+ */
+ _addTraceEvent(event) {
+ var eventNames = WebInspector.TimelineModel.RecordType;
+
+ if (event.name === eventNames.SetLayerTreeId) {
+ var sessionId = event.args['sessionId'] || event.args['data']['sessionId'];
+ if (this._sessionId === sessionId)
+ this._layerTreeId = event.args['layerTreeId'] || event.args['data']['layerTreeId'];
+ } else if (event.name === eventNames.TracingStartedInPage) {
+ this._mainThread = event.thread;
+ } 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.TracingFrameLayerTree(this._target, snapshot));
+ } else {
+ this._processCompositorEvents(event);
+ if (event.thread === this._mainThread)
+ this._addMainThreadTraceEvent(event);
+ else if (this._lastFrame && event.selfTime && !WebInspector.TracingModel.isTopLevelEvent(event))
+ this._lastFrame._addTimeForCategory(this._categoryMapper(event), event.selfTime);
+ }
+ }
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
+ */
+ _processCompositorEvents(event) {
+ var eventNames = WebInspector.TimelineModel.RecordType;
+
+ if (event.args['layerTreeId'] !== this._layerTreeId)
+ return;
+
+ var timestamp = event.startTime;
+ if (event.name === eventNames.BeginFrame)
+ this.handleBeginFrame(timestamp);
+ else if (event.name === eventNames.DrawFrame)
+ this.handleDrawFrame(timestamp);
+ else if (event.name === eventNames.ActivateLayerTree)
+ this.handleActivateLayerTree();
+ else if (event.name === eventNames.RequestMainThreadFrame)
+ this.handleRequestMainThreadFrame();
+ else if (event.name === eventNames.NeedsBeginFrameChanged)
+ this.handleNeedFrameChanged(timestamp, event.args['data'] && event.args['data']['needsBeginFrame']);
+ }
+
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
+ */
+ _addMainThreadTraceEvent(event) {
+ var eventNames = WebInspector.TimelineModel.RecordType;
+ var timestamp = event.startTime;
+ var selfTime = event.selfTime || 0;
+
+ if (WebInspector.TracingModel.isTopLevelEvent(event)) {
+ this._currentTaskTimeByCategory = {};
+ this._lastTaskBeginTime = event.startTime;
+ }
+ if (!this._framePendingCommit && WebInspector.TimelineFrameModel._mainFrameMarkers.indexOf(event.name) >= 0)
+ this._framePendingCommit =
+ new WebInspector.PendingFrame(this._lastTaskBeginTime || event.startTime, this._currentTaskTimeByCategory);
+ if (!this._framePendingCommit) {
+ this._addTimeForCategory(this._currentTaskTimeByCategory, event);
+ return;
+ }
+ this._addTimeForCategory(this._framePendingCommit.timeByCategory, event);
+
+ if (event.name === eventNames.BeginMainThreadFrame && event.args['data'] && event.args['data']['frameId'])
+ this._framePendingCommit.mainFrameId = event.args['data']['frameId'];
+ if (event.name === eventNames.Paint && event.args['data']['layerId'] && event.picture && this._target)
+ this._framePendingCommit.paints.push(new WebInspector.LayerPaintEvent(event, this._target));
+ if (event.name === eventNames.CompositeLayers && event.args['layerTreeId'] === this._layerTreeId)
+ this.handleCompositeLayers();
+ }
+
+ /**
+ * @param {!Object.<string, number>} timeByCategory
+ * @param {!WebInspector.TracingModel.Event} event
+ */
+ _addTimeForCategory(timeByCategory, event) {
+ if (!event.selfTime)
+ return;
+ var categoryName = this._categoryMapper(event);
+ timeByCategory[categoryName] = (timeByCategory[categoryName] || 0) + event.selfTime;
+ }
};
+WebInspector.TimelineFrameModel._mainFrameMarkers = [
+ WebInspector.TimelineModel.RecordType.ScheduleStyleRecalculation,
+ WebInspector.TimelineModel.RecordType.InvalidateLayout, WebInspector.TimelineModel.RecordType.BeginMainThreadFrame,
+ WebInspector.TimelineModel.RecordType.ScrollLayer
+];
+
/**
- * @constructor
- * @param {!WebInspector.Target} target
- * @param {!WebInspector.TracingModel.ObjectSnapshot} snapshot
+ * @unrestricted
*/
-WebInspector.TracingFrameLayerTree = function(target, snapshot)
-{
+WebInspector.TracingFrameLayerTree = class {
+ /**
+ * @param {!WebInspector.Target} target
+ * @param {!WebInspector.TracingModel.ObjectSnapshot} snapshot
+ */
+ constructor(target, snapshot) {
this._target = target;
this._snapshot = snapshot;
/** @type {!Array<!WebInspector.LayerPaintEvent>|undefined} */
this._paints;
+ }
+
+ /**
+ * @return {!Promise<?WebInspector.TracingLayerTree>}
+ */
+ layerTreePromise() {
+ return this._snapshot.objectPromise().then(result => {
+ if (!result)
+ return null;
+ var viewport = result['device_viewport_size'];
+ var tiles = result['active_tiles'];
+ var rootLayer = result['active_tree']['root_layer'];
+ var layers = result['active_tree']['layers'];
+ var layerTree = new WebInspector.TracingLayerTree(this._target);
+ layerTree.setViewportSize(viewport);
+ layerTree.setTiles(tiles);
+ return new Promise(
+ resolve => layerTree.setLayers(rootLayer, layers, this._paints || [], () => resolve(layerTree)));
+ });
+ }
+
+ /**
+ * @return {!Array<!WebInspector.LayerPaintEvent>}
+ */
+ paints() {
+ return this._paints || [];
+ }
+
+ /**
+ * @param {!Array<!WebInspector.LayerPaintEvent>} paints
+ */
+ _setPaints(paints) {
+ this._paints = paints;
+ }
};
-WebInspector.TracingFrameLayerTree.prototype = {
- /**
- * @return {!Promise<?WebInspector.TracingLayerTree>}
- */
- layerTreePromise: function()
- {
- return this._snapshot.objectPromise().then(result => {
- if (!result)
- return null;
- var viewport = result["device_viewport_size"];
- var tiles = result["active_tiles"];
- var rootLayer = result["active_tree"]["root_layer"];
- var layers = result["active_tree"]["layers"];
- var layerTree = new WebInspector.TracingLayerTree(this._target);
- layerTree.setViewportSize(viewport);
- layerTree.setTiles(tiles);
- return new Promise(resolve => layerTree.setLayers(rootLayer, layers, this._paints || [], () => resolve(layerTree)));
- });
- },
-
- /**
- * @return {!Array<!WebInspector.LayerPaintEvent>}
- */
- paints: function()
- {
- return this._paints || [];
- },
-
- /**
- * @param {!Array<!WebInspector.LayerPaintEvent>} paints
- */
- _setPaints: function(paints)
- {
- this._paints = paints;
- }
-};
-
-
/**
- * @constructor
- * @param {number} startTime
- * @param {number} startTimeOffset
+ * @unrestricted
*/
-WebInspector.TimelineFrame = function(startTime, startTimeOffset)
-{
+WebInspector.TimelineFrame = class {
+ /**
+ * @param {number} startTime
+ * @param {number} startTimeOffset
+ */
+ constructor(startTime, startTimeOffset) {
this.startTime = startTime;
this.startTimeOffset = startTimeOffset;
this.endTime = this.startTime;
@@ -452,117 +433,111 @@ WebInspector.TimelineFrame = function(startTime, startTimeOffset)
this._paints = [];
/** @type {number|undefined} */
this._mainFrameId = undefined;
-};
-
-WebInspector.TimelineFrame.prototype = {
- /**
- * @return {boolean}
- */
- hasWarnings: function()
- {
- var /** @const */ longFrameDurationThresholdMs = 22;
- return !this.idle && this.duration > longFrameDurationThresholdMs;
- },
-
- /**
- * @param {number} endTime
- */
- _setEndTime: function(endTime)
- {
- this.endTime = endTime;
- this.duration = this.endTime - this.startTime;
- },
-
- /**
- * @param {?WebInspector.TracingFrameLayerTree} layerTree
- */
- _setLayerTree: function(layerTree)
- {
- this.layerTree = layerTree;
- },
-
- /**
- * @param {!Object} timeByCategory
- */
- _addTimeForCategories: function(timeByCategory)
- {
- for (var category in timeByCategory)
- this._addTimeForCategory(category, timeByCategory[category]);
- },
-
- /**
- * @param {string} category
- * @param {number} time
- */
- _addTimeForCategory: function(category, time)
- {
- this.timeByCategory[category] = (this.timeByCategory[category] || 0) + time;
- this.cpuTime += time;
- },
+ }
+
+ /**
+ * @return {boolean}
+ */
+ hasWarnings() {
+ var /** @const */ longFrameDurationThresholdMs = 22;
+ return !this.idle && this.duration > longFrameDurationThresholdMs;
+ }
+
+ /**
+ * @param {number} endTime
+ */
+ _setEndTime(endTime) {
+ this.endTime = endTime;
+ this.duration = this.endTime - this.startTime;
+ }
+
+ /**
+ * @param {?WebInspector.TracingFrameLayerTree} layerTree
+ */
+ _setLayerTree(layerTree) {
+ this.layerTree = layerTree;
+ }
+
+ /**
+ * @param {!Object} timeByCategory
+ */
+ _addTimeForCategories(timeByCategory) {
+ for (var category in timeByCategory)
+ this._addTimeForCategory(category, timeByCategory[category]);
+ }
+
+ /**
+ * @param {string} category
+ * @param {number} time
+ */
+ _addTimeForCategory(category, time) {
+ this.timeByCategory[category] = (this.timeByCategory[category] || 0) + time;
+ this.cpuTime += time;
+ }
};
/**
- * @constructor
- * @param {!WebInspector.TracingModel.Event} event
- * @param {?WebInspector.Target} target
+ * @unrestricted
*/
-WebInspector.LayerPaintEvent = function(event, target)
-{
+WebInspector.LayerPaintEvent = class {
+ /**
+ * @param {!WebInspector.TracingModel.Event} event
+ * @param {?WebInspector.Target} target
+ */
+ constructor(event, target) {
this._event = event;
this._target = target;
-};
-
-WebInspector.LayerPaintEvent.prototype = {
- /**
- * @return {string}
- */
- layerId: function()
- {
- return this._event.args["data"]["layerId"];
- },
-
- /**
- * @return {!WebInspector.TracingModel.Event}
- */
- event: function()
- {
- return this._event;
- },
-
- /**
- * @return {!Promise<?{rect: !Array<number>, serializedPicture: string}>}
- */
- picturePromise: function()
- {
- return this._event.picture.objectPromise().then(result => {
- if (!result)
- return null;
- var rect = result["params"] && result["params"]["layer_rect"];
- var picture = result["skp64"];
- return rect && picture ? {rect: rect, serializedPicture: picture} : null;
- });
- },
-
- /**
- * @return !Promise<?{rect: !Array<number>, snapshot: !WebInspector.PaintProfilerSnapshot}>}
- */
- snapshotPromise: function()
- {
- return this.picturePromise().then(picture => {
- if (!picture || !this._target)
- return null;
- return WebInspector.PaintProfilerSnapshot.load(this._target, picture.serializedPicture).then(snapshot => snapshot ? {rect: picture.rect, snapshot: snapshot} : null);
- });
- }
+ }
+
+ /**
+ * @return {string}
+ */
+ layerId() {
+ return this._event.args['data']['layerId'];
+ }
+
+ /**
+ * @return {!WebInspector.TracingModel.Event}
+ */
+ event() {
+ return this._event;
+ }
+
+ /**
+ * @return {!Promise<?{rect: !Array<number>, serializedPicture: string}>}
+ */
+ picturePromise() {
+ return this._event.picture.objectPromise().then(result => {
+ if (!result)
+ return null;
+ var rect = result['params'] && result['params']['layer_rect'];
+ var picture = result['skp64'];
+ return rect && picture ? {rect: rect, serializedPicture: picture} : null;
+ });
+ }
+
+ /**
+ * @return !Promise<?{rect: !Array<number>, snapshot: !WebInspector.PaintProfilerSnapshot}>}
+ */
+ snapshotPromise() {
+ return this.picturePromise().then(picture => {
+ if (!picture || !this._target)
+ return null;
+ return WebInspector.PaintProfilerSnapshot.load(this._target, picture.serializedPicture)
+ .then(snapshot => snapshot ? {rect: picture.rect, snapshot: snapshot} : null);
+ });
+ }
};
/**
- * @constructor
- * @param {number} triggerTime
- * @param {!Object.<string, number>} timeByCategory
+ * @unrestricted
*/
-WebInspector.PendingFrame = function(triggerTime, timeByCategory)
-{
+WebInspector.PendingFrame = class {
+ /**
+ * @param {number} triggerTime
+ * @param {!Object.<string, number>} timeByCategory
+ */
+ constructor(triggerTime, timeByCategory) {
/** @type {!Object.<string, number>} */
this.timeByCategory = timeByCategory;
/** @type {!Array.<!WebInspector.LayerPaintEvent>} */
@@ -570,4 +545,5 @@ WebInspector.PendingFrame = function(triggerTime, timeByCategory)
/** @type {number|undefined} */
this.mainFrameId = undefined;
this.triggerTime = triggerTime;
+ }
};

Powered by Google App Engine
This is Rietveld 408576698