UNPKG

debug-server-next

Version:

Dev server for hippy-core.

63 lines (62 loc) 2.81 kB
// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as UI from '../../ui/legacy/legacy.js'; import * as LayerViewer from '../layer_viewer/layer_viewer.js'; export class TimelineLayersView extends UI.SplitWidget.SplitWidget { _model; _showPaintProfilerCallback; _rightSplitWidget; _layerViewHost; _layers3DView; _frameLayerTree; _updateWhenVisible; constructor(model, showPaintProfilerCallback) { super(true, false, 'timelineLayersView'); this._model = model; this._showPaintProfilerCallback = showPaintProfilerCallback; this.element.classList.add('timeline-layers-view'); this._rightSplitWidget = new UI.SplitWidget.SplitWidget(true, true, 'timelineLayersViewDetails'); this._rightSplitWidget.element.classList.add('timeline-layers-view-properties'); this.setMainWidget(this._rightSplitWidget); const vbox = new UI.Widget.VBox(); this.setSidebarWidget(vbox); this._layerViewHost = new LayerViewer.LayerViewHost.LayerViewHost(); const layerTreeOutline = new LayerViewer.LayerTreeOutline.LayerTreeOutline(this._layerViewHost); vbox.element.appendChild(layerTreeOutline.element); this._layers3DView = new LayerViewer.Layers3DView.Layers3DView(this._layerViewHost); this._layers3DView.addEventListener(LayerViewer.Layers3DView.Events.PaintProfilerRequested, this._onPaintProfilerRequested, this); this._rightSplitWidget.setMainWidget(this._layers3DView); const layerDetailsView = new LayerViewer.LayerDetailsView.LayerDetailsView(this._layerViewHost); this._rightSplitWidget.setSidebarWidget(layerDetailsView); layerDetailsView.addEventListener(LayerViewer.LayerDetailsView.Events.PaintProfilerRequested, this._onPaintProfilerRequested, this); } showLayerTree(frameLayerTree) { this._frameLayerTree = frameLayerTree; if (this.isShowing()) { this._update(); } else { this._updateWhenVisible = true; } } wasShown() { if (this._updateWhenVisible) { this._updateWhenVisible = false; this._update(); } } _onPaintProfilerRequested(event) { const selection = event.data; this._layers3DView.snapshotForSelection(selection).then(snapshotWithRect => { if (snapshotWithRect) { this._showPaintProfilerCallback(snapshotWithRect.snapshot); } }); } _update() { if (this._frameLayerTree) { this._frameLayerTree.layerTreePromise().then(layerTree => this._layerViewHost.setLayerTree(layerTree)); } } }