tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

fixed-position-iframe-scroll.html (1619B)


      1 <!doctype html>
      2 <meta name="viewport" content="width=device-width,initial-scale=1">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="./resources/intersection-observer-test-utils.js"></script>
      6 <div style="position: fixed; top: 0; left: 0">
      7  <iframe id="iframe" style="width: 300px; height: 300px; border: none"
      8          srcdoc="<style>body {margin: 0}</style>
      9                  <div id='target' style='width: 100px; height: 100px'></div>">
     10  </iframe>
     11 </div>
     12 <div id="log" style="height: 2000px"></div>
     13 <script>
     14 var entries = [];
     15 
     16 iframe.onload = () => {
     17  runTestCycle(function() {
     18    var observer = new IntersectionObserver(function(changes) {
     19      entries = entries.concat(changes)
     20    });
     21    observer.observe(iframe.contentDocument.getElementById('target'));
     22    entries = entries.concat(observer.takeRecords());
     23    assert_equals(entries.length, 0, 'No initial notifications.');
     24    runTestCycle(step0, 'First rAF.');
     25  }, 'Fixed-position intersection observer on scroll');
     26 };
     27 
     28 function step0() {
     29  window.scrollTo(0, 1000);
     30  runTestCycle(step1, 'scrollTo(0, 1000)');
     31  checkLastEntry(entries, 0,
     32                 [0, 100, 0, 100, 0, 100, 0, 100, 0,
     33                  document.documentElement.clientWidth, 0, document.documentElement.clientHeight,
     34                  true]);
     35 }
     36 
     37 function step1() {
     38  window.scrollTo(0, 0);
     39  checkLastEntry(entries, 0,
     40                 [0, 100, 0, 100, 0, 100, 0, 100, 0,
     41                  document.documentElement.clientWidth, 0, document.documentElement.clientHeight,
     42                  true]);
     43 }
     44 </script>