<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>Content Visibility: shadow dom</title>
<link rel="author" title="Rakina Zata Amni" href="mailto:rakina@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
<link rel="match" href="container-with-child-ref.html">
<meta name="assert" content="content-visibility hidden can be used in a shadow DOM">

<script src="/common/reftest-wait.js"></script>
<script src="resources/utils.js"></script>

<style>
.hidden {
  content-visibility: hidden;
}
.child {
  width: 50px;
  height: 50px;
  background: lightgreen;
}
</style>
<div id="host">
  <div id="slotted">
    Text.
    <div class=child></div>
  </div>
</div>

<script>
async function runTest() {
  // Set up hidden element within shadow root.
  let shadowRoot = host.attachShadow({ mode: "open" });
  let hidden = document.createElement("div");
  shadowRoot.innerHTML = `
    <style>
    .container {
      width: 150px;
      height: 150px;
      background: lightblue;
    }
    </style>`;
  shadowRoot.appendChild(hidden);
  hidden.innerHTML = "<slot></slot>";
  hidden.getBoundingClientRect();
  hidden.classList.add("container");
  hidden.classList.add("hidden");
  requestAnimationFrame(() => {
    slotted.style = "display: none";
    // Do a forced layout outside the hidden subtree.
    host.getBoundingClientRect();

    hidden.classList.remove("hidden");
    slotted.style = "";
    requestAnimationFrame(() => {
      // Check that everything is painted as we expect.
      takeScreenshot();
    });
  });
}

window.onload = runTest;
</script>
</html>
