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

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

Issue 389563002: DevTools: make paint profiler target-aware (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fixed a test and a stray line Created 6 years, 5 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/TimelineLayersView.js
diff --git a/Source/devtools/front_end/timeline/TimelineLayersView.js b/Source/devtools/front_end/timeline/TimelineLayersView.js
index e1080000f6a0be62833b223abcd82558494e5f86..c8a907ffd9c7828603339f5d1483cb443c4cf8bb 100644
--- a/Source/devtools/front_end/timeline/TimelineLayersView.js
+++ b/Source/devtools/front_end/timeline/TimelineLayersView.js
@@ -27,37 +27,35 @@ WebInspector.TimelineLayersView.prototype = {
showLayerTree: function(deferredLayerTree, paints)
{
this._disposeTiles();
- if (!this.isShowing()) {
- this._pendingLayerTree = deferredLayerTree,
- this._pendingPaints = paints;
- return;
- }
- this._actuallyShowLayerTree(deferredLayerTree, paints);
+ this._deferredLayerTree = deferredLayerTree;
+ this._paints = paints;
+ if (this.isShowing())
+ this._update();
+ else
+ this._updateWhenVisible = true;
},
wasShown: function()
{
- if (!this._pendingLayerTree)
- return;
- this._actuallyShowLayerTree(this._pendingLayerTree, this._pendingPaints);
- this._pendingLayerTree = null;
- this._pendingPaints = null;
+ if (this._updateWhenVisible) {
+ this._updateWhenVisible = false;
+ this._update();
+ }
},
- /**
- * @param {!WebInspector.DeferredLayerTree} deferredLayerTree
- * @param {?Array.<!WebInspector.LayerPaintEvent>} paints
- */
- _actuallyShowLayerTree: function(deferredLayerTree, paints)
+ _update: function()
{
var layerTree;
- this._target = deferredLayerTree.target();
+ this._weakTarget = this._deferredLayerTree.weakTarget();
var originalTiles = this._paintTiles;
var tilesReadyBarrier = new CallbackBarrier();
- deferredLayerTree.resolve(tilesReadyBarrier.createCallback(onLayersReady));
- for (var i = 0; paints && i < paints.length; ++i)
- WebInspector.PaintProfilerSnapshot.load(paints[i].picture, tilesReadyBarrier.createCallback(onSnapshotLoaded.bind(this, paints[i])));
+ this._deferredLayerTree.resolve(tilesReadyBarrier.createCallback(onLayersReady));
+ var target = this._weakTarget.get();
+ if (target) {
+ for (var i = 0; this._paints && i < this._paints.length; ++i)
+ WebInspector.PaintProfilerSnapshot.load(target, this._paints[i].picture, tilesReadyBarrier.createCallback(onSnapshotLoaded.bind(this, this._paints[i])));
+ }
tilesReadyBarrier.callWhenDone(onLayersAndTilesReady.bind(this));
/**
@@ -104,11 +102,7 @@ WebInspector.TimelineLayersView.prototype = {
if (this._currentlySelectedLayer === activeObject)
return;
this._currentlySelectedLayer = activeObject;
- var node = layer ? layer.nodeForSelfOrAncestor() : null;
- if (node)
- node.highlightForTwoSeconds();
- else
- this._target.domModel.hideDOMNodeHighlight();
+ this._toggleNodeHighlight(layer ? layer.nodeForSelfOrAncestor() : null);
this._layers3DView.selectObject(activeObject);
},
@@ -121,15 +115,26 @@ WebInspector.TimelineLayersView.prototype = {
if (this._currentlyHoveredLayer === activeObject)
return;
this._currentlyHoveredLayer = activeObject;
- var node = layer ? layer.nodeForSelfOrAncestor() : null;
- if (node)
- node.highlight();
- else
- this._target.domModel.hideDOMNodeHighlight();
+ this._toggleNodeHighlight(layer ? layer.nodeForSelfOrAncestor() : null);
this._layers3DView.hoverObject(activeObject);
},
/**
+ * @param {?WebInspector.DOMNode} node
+ */
+ _toggleNodeHighlight: function(node)
+ {
+ if (node) {
+ node.highlightForTwoSeconds();
+ return;
+ }
+ var target = this._weakTarget.get();
+ if (target)
+ target.domModel.hideDOMNodeHighlight();
+
+ },
+
+ /**
* @param {!WebInspector.Event} event
*/
_onObjectSelected: function(event)

Powered by Google App Engine
This is Rietveld 408576698