<!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 = "resources/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>
