<!doctype html>
<html class="reftest-wait">
<title>Image intrinsic size specified via sizes attribute reacts properly to media changes in Shadow DOM</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="match" href="sizes-dynamic-001-expected.html">
<link rel="help" href="https://html.spec.whatwg.org/#sizes-attributes">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1149357">
<script>
// Use WPT version after reftest-wait is implemented.
if (window.testRunner)
    testRunner.waitUntilDone();

function frameLoaded(frame) {
  let doc = frame.contentDocument;
  let shadow = doc.getElementById("host").attachShadow({ mode: "open" });

  let img = doc.createElement("img");
  img.srcset = "../../imported/w3c/web-platform-tests/images/green-256x256.png 100w";
  img.style.maxWidth = "100%";
  img.setAttribute("sizes", "(min-width: 400px) 10px, 20px");

  img.onload = function() {
    img.offsetWidth; // Flush layout.

    frame.width = "500";

    // Trigger the viewport resize, which will trigger the image load task.
    img.offsetWidth;

  // Wait for the image load task to run.
  setTimeout(() => {
     document.documentElement.removeAttribute("class");
     if (window.testRunner)
         testRunner.notifyDone();
  }, 0);
  };

  shadow.appendChild(img);
}
</script>
<iframe onload="frameLoaded(this)" width="200" height="500" srcdoc='<!doctype html><div id="host"></div>'></iframe>
