tor-browser

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

cross-origin-iframe.sub.html (1794B)


      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 
      7 <style>
      8 pre, #log {
      9  position: absolute;
     10  top: 0;
     11  left: 200px;
     12 }
     13 iframe {
     14  width: 160px;
     15  height: 100px;
     16  overflow-y: scroll;
     17 }
     18 .spacer {
     19  height: calc(100vh + 100px);
     20 }
     21 </style>
     22 
     23 <div class="spacer"></div>
     24 <iframe src="http://{{hosts[alt][]}}:{{ports[http][0]}}/intersection-observer/resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe>
     25 <div class="spacer"></div>
     26 
     27 <script>
     28 async_test(function(t) {
     29  var iframe = document.querySelector("iframe");
     30 
     31  function handleMessage(event) {
     32    if (event.data.hasOwnProperty('scrollTo')) {
     33      document.scrollingElement.scrollTop = event.data.scrollTo;
     34      waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*"); },
     35        "document.scrollingElement.scrollTop = " + event.data.scrollTo);
     36    } else if (event.data.hasOwnProperty('actual')) {
     37      checkJsonEntries(event.data.actual, event.data.expected, event.data.description);
     38    } else if (event.data.hasOwnProperty('DONE')) {
     39      document.scrollingElement.scrollTop = 0;
     40      t.done();
     41    } else {
     42      var description = event.data.description;
     43      waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*"); }, description);
     44    }
     45  }
     46 
     47  window.addEventListener("message", t.step_func(handleMessage));
     48 
     49  iframe.onload = t.step_func(function() {
     50    waitForNotification(t, function() { iframe.contentWindow.postMessage("", "*") }, "setup");
     51  });
     52 }, "Intersection observer test with no explicit root and target in a cross-origin iframe.");
     53 </script>