Chromium Code Reviews| 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..4a0abdcb6390e859381b0b7db9272ba1937b2508 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) : null); |
|
alph
2016/10/21 00:25:10
nit: layerTree &&
|
| }, |
| reset: function() |
| @@ -401,17 +396,11 @@ 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; |
|
alph
2016/10/21 00:25:10
null
|
| var viewport = result["device_viewport_size"]; |
| @@ -421,12 +410,12 @@ 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))); |
| + }); |
| }, |
| /** |
| - * @return {!Array<!WebInspector.LayerPaintEvent>} |
| + * @return {!Array<!WebInspector.LayerPaintEvent>} paints |
|
alph
2016/10/21 00:25:10
drop paints
|
| */ |
| paints: function() |
| { |
| @@ -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); |
| + }); |
| } |
| }; |