blob: f038bfbce25bccbc2c1af412948f61f5ce3e84e8 [file] [log] [blame]
function initialize_LayerTreeTests()
{
// FIXME: remove once out of experimental.
WebInspector.inspectorView.addPanel(new WebInspector.LayersPanelDescriptor());
InspectorTest._layerTreeModel = WebInspector.panel("layers")._model;
InspectorTest.labelForLayer = function(layer)
{
var node = WebInspector.domAgent.nodeForId(layer.nodeIdForSelfOrAncestor());
var label = node.appropriateSelectorFor(false);
var height = layer.height();
var width = layer.width();
if (height <= 200 && width <= 200)
label += " " + height + "x" + width;
if (typeof layer.__extraData !== "undefined")
label += " (" + layer.__extraData + ")";
return label;
}
InspectorTest.dumpLayerTree = function(prefix, root)
{
if (!prefix)
prefix = "";
if (!root) {
root = InspectorTest._layerTreeModel.root();
if (!root) {
InspectorTest.addResult("No layer root, perhaps not in the composited mode! ");
InspectorTest.completeTest();
return;
}
}
InspectorTest.addResult(prefix + InspectorTest.labelForLayer(root));
root.children().forEach(InspectorTest.dumpLayerTree.bind(InspectorTest, prefix + " "));
}
InspectorTest.evaluateAndRunWhenTreeChanges = function(expression, callback)
{
function eventHandler()
{
InspectorTest._layerTreeModel.removeEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged, eventHandler);
callback();
}
InspectorTest._layerTreeModel.addEventListener(WebInspector.LayerTreeModel.Events.LayerTreeChanged, eventHandler);
InspectorTest.evaluateInPage(expression, function() {});
}
InspectorTest.findLayerByNodeIdAttribute = function(nodeIdAttribute)
{
var result;
function testLayer(layer)
{
if (!layer.nodeId())
return false;
var node = WebInspector.domAgent.nodeForId(layer.nodeId());
if (!node || node.getAttribute("id") !== nodeIdAttribute)
return false;
result = layer;
return true;
}
InspectorTest._layerTreeModel.forEachLayer(testLayer);
return result;
}
}