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

Unified Diff: Source/devtools/front_end/timeline/TimelinePanel.js

Issue 1184383002: DevTools: adopt FilmStripModel to new screenshot recorder trace format (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: get rid of callback in createFrameElement() Created 5 years, 6 months 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: Source/devtools/front_end/timeline/TimelinePanel.js
diff --git a/Source/devtools/front_end/timeline/TimelinePanel.js b/Source/devtools/front_end/timeline/TimelinePanel.js
index 7325975dba24818d6cdba85c7a833e52a74f1c3a..81bfb2aebbdbcfb90ebdc4a35f0612e8352d0d15 100644
--- a/Source/devtools/front_end/timeline/TimelinePanel.js
+++ b/Source/devtools/front_end/timeline/TimelinePanel.js
@@ -1820,6 +1820,7 @@ WebInspector.TimelineFilmStripOverview = function(tracingModel)
this._filmStripView = new WebInspector.FilmStripView();
this._filmStripView.show(this.element);
this._lastFrame = null;
+ /** @type {?Element} */
this._lastElement = null;
}
@@ -1837,20 +1838,31 @@ WebInspector.TimelineFilmStripOverview.prototype = {
/**
* @override
* @param {number} x
- * @return {?Element}
+ * @return {!Promise<?Element>}
*/
- popoverElement: function(x)
+ popoverElementPromise: function(x)
{
if (!this._filmStripModel || !this._filmStripModel.frames().length)
- return null;
+ return Promise.resolve(/** @type {?Element} */ (null));
+
var time = this._calculator.positionToTime(x);
var frame = this._filmStripView.frameByTime(time);
- if (frame !== this._lastFrame) {
+ if (frame === this._lastFrame)
+ return Promise.resolve(this._lastElement);
+
+ return /** @type {!Promise<?Element>} */ (this._filmStripView.createFrameElement(frame).then(onElementCreated.bind(this)));
+ /**
+ * @this {WebInspector.TimelineFilmStripOverview}
+ * @param {!Element} frameElement
+ * @return {!Element}
+ */
+ function onElementCreated(frameElement)
+ {
this._lastFrame = frame;
- this._lastElement = this._filmStripView.createFrameElement(frame);
+ this._lastElement = frameElement;
this._lastElement.appendChild(WebInspector.Widget.createStyleElement("timeline/timelinePanel.css"));
+ return this._lastElement;
}
- return this._lastElement;
},
/**

Powered by Google App Engine
This is Rietveld 408576698