<!doctype html>
<html>
<head>
<title>Test page for &lt;object&gt; element rendering fallback</title>
</head>
<body>
<object data="about:blank" type="text/html">
  <p id="fallback-content">Fallback Content</p>
</object>
<p>Some text so the document is ready for input.</p>
<script>
  var fallback = document.getElementById("fallback-content");
  var object = document.querySelector("object");

  function setUrl(url) {
    return new Promise(resolve => {
      object.addEventListener("load", () => {
        resolve("OBJECT_LOAD");
      }, {once: true});
      object.data = url;
    });
  }

  function fallbackVisible() {
    let rect = fallback.getBoundingClientRect();
    let hasLayout = (rect.width * rect.height) > 0;
    return hasLayout;
  }

  async function notifyWhenFallbackShown() {
    while (!fallbackVisible()) {
      await new Promise(resolve => window.setTimeout(resolve, 10));
    }
    return true;
  }
</script>
</body>
</html>
