176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// found in the LICENSE file. 476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)/** 676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @constructor 776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @param {function(!WebInspector.Layer, string=)} showImageForLayerCallback 876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @extends {WebInspector.SplitView} 976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) */ 1076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)WebInspector.LayerPaintProfilerView = function(showImageForLayerCallback) 1176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles){ 1276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) WebInspector.SplitView.call(this, true, false); 1376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 1476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._showImageForLayerCallback = showImageForLayerCallback; 1576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._logTreeView = new WebInspector.PaintProfilerCommandLogView(); 1676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._logTreeView.show(this.sidebarElement()); 1776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._paintProfilerView = new WebInspector.PaintProfilerView(this._showImage.bind(this)); 1876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._paintProfilerView.show(this.mainElement()); 1976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 2076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._paintProfilerView.addEventListener(WebInspector.PaintProfilerView.Events.WindowChanged, this._onWindowChanged, this); 2176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)} 2276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 2376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)WebInspector.LayerPaintProfilerView.prototype = { 2476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) /** 2576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @param {!WebInspector.Layer} layer 2676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) */ 2776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) profileLayer: function(layer) 2876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) { 2976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) layer.requestSnapshot(onSnapshotDone.bind(this)); 3076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 3176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) /** 3276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @param {!WebInspector.PaintProfilerSnapshot=} snapshot 3376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @this {WebInspector.LayerPaintProfilerView} 3476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) */ 3576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) function onSnapshotDone(snapshot) 3676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) { 3776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._layer = layer; 3876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._paintProfilerView.setSnapshot(snapshot || null); 3976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._logTreeView.setSnapshot(snapshot || null); 4076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) } 4176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) }, 4276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 4376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) _onWindowChanged: function() 4476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) { 4576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) var window = this._paintProfilerView.windowBoundaries(); 4676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._logTreeView.updateWindow(window.left, window.right); 4776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) }, 4876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 4976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) /** 5076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) * @param {string=} imageURL 5176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) */ 5276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) _showImage: function(imageURL) 5376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) { 5476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) this._showImageForLayerCallback(this._layer, imageURL); 5576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) }, 5676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 5776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) __proto__: WebInspector.SplitView.prototype 5876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)}; 5976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 60