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

Side by Side Diff: Source/devtools/front_end/timeline/TimelineLayersView.js

Issue 400643002: DevTools: Add ability to go to paint record and paint profiler in Timeline from layers view. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Small fixes. 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The Chromium Authors. All rights reserved. 2 * Copyright 2014 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 /** 7 /**
8 * @constructor 8 * @constructor
9 * @extends {WebInspector.VBox} 9 * @extends {WebInspector.VBox}
10 */ 10 */
11 WebInspector.TimelineLayersView = function() 11 WebInspector.TimelineLayersView = function()
12 { 12 {
13 WebInspector.VBox.call(this); 13 WebInspector.VBox.call(this);
14 14
15 this._paintTiles = []; 15 this._paintTiles = [];
16 this._layers3DView = new WebInspector.Layers3DView(); 16 this._layers3DView = new WebInspector.Layers3DView();
17 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.ObjectS elected, this._onObjectSelected, this); 17 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.ObjectS elected, this._onObjectSelected, this);
18 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.ObjectH overed, this._onObjectHovered, this); 18 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.ObjectH overed, this._onObjectHovered, this);
19 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.JumpToP aintEventRequested, this._jumpToPaintEvent, this);
19 this._layers3DView.show(this.element); 20 this._layers3DView.show(this.element);
20 } 21 }
21 22
22 WebInspector.TimelineLayersView.prototype = { 23 WebInspector.TimelineLayersView.prototype = {
23 /** 24 /**
24 * @param {!WebInspector.DeferredLayerTree} deferredLayerTree 25 * @param {!WebInspector.DeferredLayerTree} deferredLayerTree
25 * @param {?Array.<!WebInspector.LayerPaintEvent>} paints 26 * @param {?Array.<!WebInspector.LayerPaintEvent>} paints
26 */ 27 */
27 showLayerTree: function(deferredLayerTree, paints) 28 showLayerTree: function(deferredLayerTree, paints)
28 { 29 {
29 this._disposeTiles(); 30 this._disposeTiles();
30 this._deferredLayerTree = deferredLayerTree; 31 this._deferredLayerTree = deferredLayerTree;
31 this._paints = paints; 32 this._paints = paints;
32 if (this.isShowing()) 33 if (this.isShowing())
33 this._update(); 34 this._update();
34 else 35 else
35 this._updateWhenVisible = true; 36 this._updateWhenVisible = true;
36 }, 37 },
37 38
38 wasShown: function() 39 wasShown: function()
39 { 40 {
40 if (this._updateWhenVisible) { 41 if (this._updateWhenVisible) {
41 this._updateWhenVisible = false; 42 this._updateWhenVisible = false;
42 this._update(); 43 this._update();
43 } 44 }
44 }, 45 },
45 46
47 /**
48 * @param {!WebInspector.TimelineModel} model
49 * @param {!WebInspector.TimelineModeViewDelegate} delegate
50 */
51 setTimelineModelAndDelegate: function(model, delegate)
52 {
53 this._model = model;
54 this._delegate = delegate;
55 },
56
57 /**
58 * @param {!WebInspector.Event} event
59 */
60 _jumpToPaintEvent: function(event)
61 {
62 var traceEvent = event.data;
63 var eventRecord;
64
65 function findRecordWithEvent(record)
yurys 2014/07/18 11:32:11 Please add annotations.
malch 2014/07/18 11:41:35 Done, thanks! On 2014/07/18 11:32:11, yurys wrote
66 {
67 if (record.traceEvent() === traceEvent) {
68 eventRecord = record;
69 return true;
70 }
71 return false;
72 }
73
74 this._model.forAllRecords(findRecordWithEvent);
75 if (eventRecord) {
76 var selection = WebInspector.TimelineSelection.fromRecord(eventRecor d);
77 this._delegate.select(selection);
78 }
79 },
80
46 _update: function() 81 _update: function()
47 { 82 {
48 var layerTree; 83 var layerTree;
49 84
50 this._weakTarget = this._deferredLayerTree.weakTarget(); 85 this._weakTarget = this._deferredLayerTree.weakTarget();
51 var originalTiles = this._paintTiles; 86 var originalTiles = this._paintTiles;
52 var tilesReadyBarrier = new CallbackBarrier(); 87 var tilesReadyBarrier = new CallbackBarrier();
53 this._deferredLayerTree.resolve(tilesReadyBarrier.createCallback(onLayer sReady)); 88 this._deferredLayerTree.resolve(tilesReadyBarrier.createCallback(onLayer sReady));
54 var target = this._weakTarget.get(); 89 var target = this._weakTarget.get();
55 if (target) { 90 if (target) {
(...skipping 17 matching lines...) Expand all
73 */ 108 */
74 function onSnapshotLoaded(paintEvent, snapshot) 109 function onSnapshotLoaded(paintEvent, snapshot)
75 { 110 {
76 if (!snapshot) 111 if (!snapshot)
77 return; 112 return;
78 // We're too late and there's a new generation of tiles being loaded . 113 // We're too late and there's a new generation of tiles being loaded .
79 if (originalTiles !== this._paintTiles) { 114 if (originalTiles !== this._paintTiles) {
80 snapshot.dispose(); 115 snapshot.dispose();
81 return; 116 return;
82 } 117 }
83 this._paintTiles.push({layerId: paintEvent.layerId, rect: paintEvent .rect, snapshot: snapshot}); 118 this._paintTiles.push({layerId: paintEvent.layerId, rect: paintEvent .rect, snapshot: snapshot, traceEvent: paintEvent.traceEvent});
84 } 119 }
85 120
86 /** 121 /**
87 * @this {WebInspector.TimelineLayersView} 122 * @this {WebInspector.TimelineLayersView}
88 */ 123 */
89 function onLayersAndTilesReady() 124 function onLayersAndTilesReady()
90 { 125 {
91 this._layers3DView.setLayerTree(layerTree); 126 this._layers3DView.setLayerTree(layerTree);
92 this._layers3DView.setTiles(this._paintTiles); 127 this._layers3DView.setTiles(this._paintTiles);
93 } 128 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 189
155 _disposeTiles: function() 190 _disposeTiles: function()
156 { 191 {
157 for (var i = 0; i < this._paintTiles.length; ++i) 192 for (var i = 0; i < this._paintTiles.length; ++i)
158 this._paintTiles[i].snapshot.dispose(); 193 this._paintTiles[i].snapshot.dispose();
159 this._paintTiles = []; 194 this._paintTiles = [];
160 }, 195 },
161 196
162 __proto__: WebInspector.VBox.prototype 197 __proto__: WebInspector.VBox.prototype
163 } 198 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/timeline/TimelineFrameModel.js ('k') | Source/devtools/front_end/timeline/TimelinePanel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698