<!DOCTYPE html>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="author" href="mailto:szager@chromium.org" title="Stefan Zager">
<link rel="help" href="https://w3c.github.io/IntersectionObserver/#update-intersection-observations-algo">

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./resources/intersection-observer-test-utils.js"></script>

<style>
pre, #log {
  position: absolute;
  top: 0;
  left: 200px;
}
iframe {
  height: 250px;
  width: 150px;
  border: 0;
}
</style>
<iframe id="target-iframe" src="resources/iframe-no-root-subframe.html"></iframe>

<script>
var iframe = document.getElementById("target-iframe");
var target;
var root;
var entries = [];

iframe.onload = function() {
  runTestCycle(function() {
    assert_true(!!iframe, "iframe exists");

    target = iframe.contentDocument.getElementById("target");
    assert_true(!!target, "Target element exists.");
    var observer = new IntersectionObserver(function(changes) {
      entries = entries.concat(changes)
    }, { root: document });
    observer.observe(target);
    entries = entries.concat(observer.takeRecords());
    assert_equals(entries.length, 0, "No initial notifications.");
    runTestCycle(step0, "First rAF.");
  }, "Observer with explicit root which is the document, observing a target in a same-origin iframe.");
};

function step0() {
  checkLastEntry(entries, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false]);
}
</script>
