<!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>