File: file_bug1609475.html

package info (click to toggle)
thunderbird 1%3A91.13.0-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,953,400 kB
  • sloc: cpp: 6,084,049; javascript: 4,790,441; ansic: 3,341,496; python: 862,958; asm: 366,542; xml: 204,277; java: 152,477; sh: 111,436; makefile: 21,388; perl: 15,312; yacc: 4,583; objc: 3,026; lex: 1,720; exp: 762; pascal: 635; awk: 564; sql: 453; php: 436; lisp: 432; ruby: 99; sed: 69; csh: 45
file content (51 lines) | stat: -rw-r--r-- 1,823 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<html>
  <head>
    <script>

    var loadCount = 0;
    function loadListener(event) {
      ++loadCount;
      if (loadCount == 2) {
        // Use a timer to ensure we don't get extra load events.
        setTimeout(function() {
          var doc1URI = document.getElementById("i1").contentDocument.documentURI;
          opener.ok(doc1URI.includes("frame1.html"),
                    "Should have loaded the initial page to the first iframe. Got " + doc1URI);
          var doc2URI = document.getElementById("i2").contentDocument.documentURI;
          opener.ok(doc2URI.includes("frame1.html"),
                    "Should have loaded the initial page to the second iframe. Got " + doc2URI);
          opener.finishTest();
        }, 1000);
      } else if (loadCount > 2) {
        opener.ok(false, "Too many load events");
      }
      // if we don't get enough load events, the test will time out.
    }

    function setupIframe(id) {
      var ifr = document.getElementById(id);
      return new Promise(function(resolve) {
        ifr.onload = function() {
          // Replace load listener to catch page loads from the session history.
          ifr.onload = loadListener;
          // Need to use setTimeout, because triggering loads inside
          // load event listener has special behavior since at the moment
          // the docshell keeps track of whether it is executing a load handler or not.
          setTimeout(resolve);
        }
        ifr.contentWindow.location.href = "frame2.html";
      });
    }

    async function test() {
      await setupIframe("i1");
      await setupIframe("i2");
      history.go(-2);
    }
    </script>
  </head>
  <body onload="setTimeout(test)">
    <iframe id="i1" src="frame1.html"></iframe>
    <iframe id="i2" src="frame1.html"></iframe>
  </body>
</html>