tor-browser

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

navigate-by-name-inner.html (1563B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="utils.js"></script>
      4 <title>Fenced frame hosting named frames</title>
      5 
      6 <body>
      7 <script>
      8 async function init() {
      9  // This file is meant to run in a <fencedframe>. It sets up multiple frames
     10  // all with the name `target_frame` in the following arrangements:
     11  //   1.) A top-level fenced frame
     12  //   2.) An iframe within a fenced frame
     13  //   3.) A nested fenced frame
     14  // Navigations to all of the above should fail, and thus should open a new
     15  // top-level popup window instead of navigating these frames.
     16 
     17  const [ready_for_navigation_key, test_type] = parseKeylist();
     18 
     19  switch (test_type) {
     20    case "top-level fenced frame":
     21      // Set up the named frame and report to the outer document that we're ready
     22      // for it to try and navigate the named frame.
     23      window.name = "target_frame";
     24      writeValueToServer(ready_for_navigation_key, "READY");
     25      break;
     26    case "nested iframe":
     27      const iframe = document.createElement('iframe');
     28      iframe.name = "target_frame";
     29      document.body.append(iframe);
     30      writeValueToServer(ready_for_navigation_key, "READY");
     31      break;
     32    case "nested fenced frame":
     33      // This fenced frame will report to the outermost document when it is ready.
     34      const ff =
     35          attachFencedFrame(generateURL(
     36              "fenced-frame-set-name-and-report-ready-for-" +
     37              "outermost-document-to-navigate.html",
     38              [ready_for_navigation_key]));
     39      break;
     40  }
     41 }
     42 
     43 init();
     44 </script>
     45 </body>