blob: a0558fb5627941bf9ed123a6606953d4dc4df27a [file] [log] [blame]
// Copyright 2017 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.
(async function() {
TestRunner.addResult(`Tests that LayerTreeModel successfully imports layers from a trace.\n`);
await TestRunner.loadModule('performance_test_runner');
await TestRunner.loadModule('layers_test_runner');
await TestRunner.showPanel('timeline');
await TestRunner.loadHTML(`
<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>
`);
await TestRunner.evaluateInPagePromise(`
function doActions()
{
var div = document.createElement("div");
div.id = "b4";
document.getElementById("a").appendChild(div);
// Make sure to force commit, otherwise some owner nodes will be missing.
var style = document.createElement("style");
style.textContent = ".layer { transform: translateZ(10px); opacity: 0.8; }";
document.head.appendChild(style);
return generateFrames(3);
}
`);
UI.panels.timeline._captureLayersAndPicturesSetting.set(true);
await PerformanceTestRunner.invokeAsyncWithTimeline('doActions');
const frames = PerformanceTestRunner.timelineFrameModel().frames();
const lastFrame = frames[frames.length - 1];
const layerTreeModel = await lastFrame.layerTree.layerTreePromise();
LayersTestRunner.dumpLayerTree(undefined, layerTreeModel.contentRoot());
TestRunner.completeTest();
})();