<!doctype HTML>

<style>
#container {
  contain: style layout;
  width: 150px;
  height: 150px;
  background: lightblue;
}
#child {
  width: 50px;
  height: 50px;
  background: lightgreen;
}
</style>

<div id="log"></div>

<script>
// TODO(vmpstr): In WPT this needs to be replaced with reftest-wait.
if (window.testRunner)
  window.testRunner.waitUntilDone();

function finishTest(status_string) {
  if (document.getElementById("log").innerHTML === "")
    document.getElementById("log").innerHTML = status_string;
  if (window.testRunner)
    window.testRunner.notifyDone();
}

function runTest() {
  let container = document.createElement("div");
  container.displayLock.acquire({ timeout: Infinity }).then(() => {
    let child = document.createElement("div");
    child.id = "child";
    container.appendChild(child);

    container.id = "container";
    document.body.appendChild(container);

    let promises = []
    for (let i = 0; i < 10; ++i) {
      promises.push(container.displayLock.updateAndCommit());
    }
    Promise.all(promises).then(() => finishTest("PASS"));
  });
}

window.onload = runTest;
</script>
