OLD | NEW |
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 | |
7 /** | 6 /** |
8 * @constructor | 7 * @unrestricted |
9 * @extends {WebInspector.SplitWidget} | |
10 * @param {!WebInspector.TimelineModel} model | |
11 * @param {function(!WebInspector.PaintProfilerSnapshot)} showPaintProfilerCallb
ack | |
12 */ | 8 */ |
13 WebInspector.TimelineLayersView = function(model, showPaintProfilerCallback) | 9 WebInspector.TimelineLayersView = class extends WebInspector.SplitWidget { |
14 { | 10 /** |
15 WebInspector.SplitWidget.call(this, true, false, "timelineLayersView"); | 11 * @param {!WebInspector.TimelineModel} model |
| 12 * @param {function(!WebInspector.PaintProfilerSnapshot)} showPaintProfilerCal
lback |
| 13 */ |
| 14 constructor(model, showPaintProfilerCallback) { |
| 15 super(true, false, 'timelineLayersView'); |
16 this._model = model; | 16 this._model = model; |
17 this._showPaintProfilerCallback = showPaintProfilerCallback; | 17 this._showPaintProfilerCallback = showPaintProfilerCallback; |
18 | 18 |
19 this.element.classList.add("timeline-layers-view"); | 19 this.element.classList.add('timeline-layers-view'); |
20 this._rightSplitWidget = new WebInspector.SplitWidget(true, true, "timelineL
ayersViewDetails"); | 20 this._rightSplitWidget = new WebInspector.SplitWidget(true, true, 'timelineL
ayersViewDetails'); |
21 this._rightSplitWidget.element.classList.add("timeline-layers-view-propertie
s"); | 21 this._rightSplitWidget.element.classList.add('timeline-layers-view-propertie
s'); |
22 this.setMainWidget(this._rightSplitWidget); | 22 this.setMainWidget(this._rightSplitWidget); |
23 | 23 |
24 var vbox = new WebInspector.VBox(); | 24 var vbox = new WebInspector.VBox(); |
25 this.setSidebarWidget(vbox); | 25 this.setSidebarWidget(vbox); |
26 | 26 |
27 this._layerViewHost = new WebInspector.LayerViewHost(); | 27 this._layerViewHost = new WebInspector.LayerViewHost(); |
28 | 28 |
29 var layerTreeOutline = new WebInspector.LayerTreeOutline(this._layerViewHost
); | 29 var layerTreeOutline = new WebInspector.LayerTreeOutline(this._layerViewHost
); |
30 vbox.element.appendChild(layerTreeOutline.element); | 30 vbox.element.appendChild(layerTreeOutline.element); |
31 | 31 |
32 this._layers3DView = new WebInspector.Layers3DView(this._layerViewHost); | 32 this._layers3DView = new WebInspector.Layers3DView(this._layerViewHost); |
33 this._layers3DView.addEventListener(WebInspector.Layers3DView.Events.PaintPr
ofilerRequested, this._onPaintProfilerRequested, this); | 33 this._layers3DView.addEventListener( |
| 34 WebInspector.Layers3DView.Events.PaintProfilerRequested, this._onPaintPr
ofilerRequested, this); |
34 this._rightSplitWidget.setMainWidget(this._layers3DView); | 35 this._rightSplitWidget.setMainWidget(this._layers3DView); |
35 | 36 |
36 var layerDetailsView = new WebInspector.LayerDetailsView(this._layerViewHost
); | 37 var layerDetailsView = new WebInspector.LayerDetailsView(this._layerViewHost
); |
37 this._rightSplitWidget.setSidebarWidget(layerDetailsView); | 38 this._rightSplitWidget.setSidebarWidget(layerDetailsView); |
38 layerDetailsView.addEventListener(WebInspector.LayerDetailsView.Events.Paint
ProfilerRequested, this._onPaintProfilerRequested, this); | 39 layerDetailsView.addEventListener( |
| 40 WebInspector.LayerDetailsView.Events.PaintProfilerRequested, this._onPai
ntProfilerRequested, this); |
| 41 } |
| 42 |
| 43 /** |
| 44 * @param {!WebInspector.TracingFrameLayerTree} frameLayerTree |
| 45 */ |
| 46 showLayerTree(frameLayerTree) { |
| 47 this._frameLayerTree = frameLayerTree; |
| 48 if (this.isShowing()) |
| 49 this._update(); |
| 50 else |
| 51 this._updateWhenVisible = true; |
| 52 } |
| 53 |
| 54 /** |
| 55 * @override |
| 56 */ |
| 57 wasShown() { |
| 58 if (this._updateWhenVisible) { |
| 59 this._updateWhenVisible = false; |
| 60 this._update(); |
| 61 } |
| 62 } |
| 63 |
| 64 /** |
| 65 * @param {!WebInspector.Event} event |
| 66 */ |
| 67 _onPaintProfilerRequested(event) { |
| 68 var selection = /** @type {!WebInspector.LayerView.Selection} */ (event.data
); |
| 69 this._layers3DView.snapshotForSelection(selection).then(snapshotWithRect =>
{ |
| 70 if (snapshotWithRect) |
| 71 this._showPaintProfilerCallback(snapshotWithRect.snapshot); |
| 72 }); |
| 73 } |
| 74 |
| 75 _update() { |
| 76 this._frameLayerTree.layerTreePromise().then(layerTree => this._layerViewHos
t.setLayerTree(layerTree)); |
| 77 } |
39 }; | 78 }; |
40 | |
41 WebInspector.TimelineLayersView.prototype = { | |
42 /** | |
43 * @param {!WebInspector.TracingFrameLayerTree} frameLayerTree | |
44 */ | |
45 showLayerTree: function(frameLayerTree) | |
46 { | |
47 this._frameLayerTree = frameLayerTree; | |
48 if (this.isShowing()) | |
49 this._update(); | |
50 else | |
51 this._updateWhenVisible = true; | |
52 }, | |
53 | |
54 wasShown: function() | |
55 { | |
56 if (this._updateWhenVisible) { | |
57 this._updateWhenVisible = false; | |
58 this._update(); | |
59 } | |
60 }, | |
61 | |
62 /** | |
63 * @param {!WebInspector.Event} event | |
64 */ | |
65 _onPaintProfilerRequested: function(event) | |
66 { | |
67 var selection = /** @type {!WebInspector.LayerView.Selection} */ (event.
data); | |
68 this._layers3DView.snapshotForSelection(selection).then(snapshotWithRect
=> { | |
69 if (snapshotWithRect) | |
70 this._showPaintProfilerCallback(snapshotWithRect.snapshot); | |
71 }); | |
72 }, | |
73 | |
74 _update: function() | |
75 { | |
76 this._frameLayerTree.layerTreePromise().then(layerTree => this._layerVie
wHost.setLayerTree(layerTree)); | |
77 }, | |
78 | |
79 __proto__: WebInspector.SplitWidget.prototype | |
80 }; | |
OLD | NEW |