| 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 6844bac7913977aaa382a90b1a01a04278f13b2a..c902dd1360c1e676cbae71c0481f37cede010e48 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
|
| @@ -103,25 +103,20 @@ WebInspector.TimelineFrameModel.prototype = {
|
|
|
| /**
|
| * @param {!WebInspector.TracingModel.Event} rasterTask
|
| - * @param {function(?DOMAgent.Rect, ?WebInspector.PaintProfilerSnapshot)} callback
|
| + * @return Promise<?{rect: !DOMAgent.Rect, snapshot: !WebInspector.PaintProfilerSnapshot}>}
|
| */
|
| - requestRasterTile: function(rasterTask, callback)
|
| + rasterTilePromise: function(rasterTask)
|
| {
|
| - var target = this._target;
|
| - if (!target) {
|
| - callback(null, null);
|
| - return;
|
| - }
|
| + 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) {
|
| - callback(null, null);
|
| - return;
|
| - }
|
| + if (!frame || !frame.layerTree || !tileId)
|
| + return Promise.resolve(null);
|
|
|
| - frame.layerTree.resolve(layerTree => layerTree.pictureForRasterTile(tileId, callback));
|
| + return frame.layerTree.layerTreePromise().then(layerTree => layerTree && layerTree.pictureForRasterTile(tileId));
|
| },
|
|
|
| reset: function()
|
| @@ -401,19 +396,13 @@ WebInspector.TracingFrameLayerTree = function(target, snapshot)
|
|
|
| WebInspector.TracingFrameLayerTree.prototype = {
|
| /**
|
| - * @param {function(!WebInspector.LayerTreeBase)} callback
|
| + * @return {!Promise<?WebInspector.TracingLayerTree>}
|
| */
|
| - resolve: function(callback)
|
| + layerTreePromise: function()
|
| {
|
| - this._snapshot.requestObject(onGotObject.bind(this));
|
| - /**
|
| - * @this {WebInspector.TracingFrameLayerTree}
|
| - * @param {?Object} result
|
| - */
|
| - function onGotObject(result)
|
| - {
|
| + return this._snapshot.objectPromise().then(result => {
|
| if (!result)
|
| - return;
|
| + return null;
|
| var viewport = result["device_viewport_size"];
|
| var tiles = result["active_tiles"];
|
| var rootLayer = result["active_tree"]["root_layer"];
|
| @@ -421,8 +410,8 @@ WebInspector.TracingFrameLayerTree.prototype = {
|
| var layerTree = new WebInspector.TracingLayerTree(this._target);
|
| layerTree.setViewportSize(viewport);
|
| layerTree.setTiles(tiles);
|
| - layerTree.setLayers(rootLayer, layers, this._paints || [], callback.bind(null, layerTree));
|
| - }
|
| + return new Promise(resolve => layerTree.setLayers(rootLayer, layers, this._paints || [], () => resolve(layerTree)));
|
| + });
|
| },
|
|
|
| /**
|
| @@ -439,7 +428,7 @@ WebInspector.TracingFrameLayerTree.prototype = {
|
| _setPaints: function(paints)
|
| {
|
| this._paints = paints;
|
| - },
|
| + }
|
| };
|
|
|
|
|
| @@ -541,44 +530,29 @@ WebInspector.LayerPaintEvent.prototype = {
|
| },
|
|
|
| /**
|
| - * @param {function(?Array.<number>, ?string)} callback
|
| + * @return {!Promise<?{rect: !Array<number>, serializedPicture: string}>}
|
| */
|
| - loadPicture: function(callback)
|
| + picturePromise: function()
|
| {
|
| - this._event.picture.requestObject(onGotObject);
|
| - /**
|
| - * @param {?Object} result
|
| - */
|
| - function onGotObject(result)
|
| - {
|
| - if (!result || !result["skp64"]) {
|
| - callback(null, null);
|
| - return;
|
| - }
|
| + return this._event.picture.objectPromise().then(result => {
|
| + if (!result)
|
| + return null;
|
| var rect = result["params"] && result["params"]["layer_rect"];
|
| - callback(rect, result["skp64"]);
|
| - }
|
| + var picture = result["skp64"];
|
| + return rect && picture ? {rect: rect, serializedPicture: picture} : null;
|
| + });
|
| },
|
|
|
| /**
|
| - * @param {function(?Array.<number>, ?WebInspector.PaintProfilerSnapshot)} callback
|
| + * @return !Promise<?{rect: Array<number>, snapshot: !WebInspector.PaintProfilerSnapshot}>}
|
| */
|
| - loadSnapshot: function(callback)
|
| + snapshotPromise: function()
|
| {
|
| - this.loadPicture(onGotPicture.bind(this));
|
| - /**
|
| - * @param {?Array.<number>} rect
|
| - * @param {?string} picture
|
| - * @this {WebInspector.LayerPaintEvent}
|
| - */
|
| - function onGotPicture(rect, picture)
|
| - {
|
| - if (!rect || !picture || !this._target) {
|
| - callback(null, null);
|
| - return;
|
| - }
|
| - WebInspector.PaintProfilerSnapshot.load(this._target, picture, callback.bind(null, rect));
|
| - }
|
| + 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);
|
| + });
|
| }
|
| };
|
|
|
|
|