blob: 77ca0e94c2c14e339acc9a76de3ee69e56c18555 [file] [log] [blame]
<html>
<head>
<style>
.layer {
transform: translateZ(10px);
opacity: 0.8;
}
</style>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/layers-test.js"></script>
<script>
function updateTree()
{
document.getElementById("c").appendChild(document.getElementById("b1"));
var b3 = document.getElementById("b3");
b3.parentElement.removeChild(b3);
var b4 = document.createElement("div");
b4.id = "b4";
b4.className = "layer";
document.getElementById("a").appendChild(b4);
}
function updateGeometry()
{
document.getElementById("c").style.width = "80px";
}
function test()
{
function addDepthMarker(layer)
{
layer.__extraData = layer.parent() ? layer.parent().__extraData + 1 : 0;
}
InspectorTest.requestLayers(step1);
function step1()
{
// Assure layer objects are not re-created during updates.
InspectorTest.layerTreeModel().layerTree().forEachLayer(addDepthMarker);
InspectorTest.addResult("Initial layer tree");
InspectorTest.dumpLayerTree();
InspectorTest.evaluateAndRunWhenTreeChanges("requestAnimationFrame(updateTree)", step2);
}
function step2()
{
InspectorTest.addResult("Updated layer tree");
InspectorTest.dumpLayerTree();
InspectorTest.evaluateAndRunWhenTreeChanges("requestAnimationFrame(updateGeometry)", step3);
}
function step3()
{
InspectorTest.addResult("Updated layer geometry");
InspectorTest.dumpLayerTree();
InspectorTest.completeTest();
}
}
</script>
</head>
<body onload="runTest()">
<div id="a" style="width: 200px; height: 200px" class="layer">
<div class="layer" id="b1" style="width: 150px; height: 100px"></div>
<div id="b2" class="layer" style="width: 140px; height: 110px">
<div id="c" class="layer" style="width: 100px; height: 90px"></div>
</div>
<div id="b3" class="layer" style="width: 140px; height: 110px"></div>
</div>
<iframe id="frame" src="resources/composited-iframe.html" width="200" height="200"></div>
</body>
</html>