File: file_bug426646-2.html

package info (click to toggle)
wine-gecko-2.21 2.21%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 646,272 kB
  • ctags: 630,086
  • sloc: cpp: 2,895,786; ansic: 1,502,970; python: 156,675; asm: 115,373; java: 111,421; sh: 63,309; xml: 62,872; makefile: 58,685; perl: 19,182; objc: 3,461; yacc: 2,051; lex: 979; pascal: 929; exp: 449; php: 244; lisp: 228; awk: 211; sed: 26; csh: 21; ada: 16; ruby: 3
file content (64 lines) | stat: -rw-r--r-- 1,677 bytes parent folder | download | duplicates (15)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
<html><head>
<title>Bug 426646, Using location.replace breaks iframe history</title>
<script type="text/javascript">
var url1 = "data:text/html;charset=utf-8,1st%20page";

var win0 = null;

function soon(f) {
  return function() { setTimeout(f, 0); };
}

function doe() {
  document.body.innerHTML = "<iframe src='about:blank'></iframe>";
  document.body.innerHTML += "<iframe src='about:blank'></iframe>";
  win0 = window.frames[0];
  win0.frameElement.onload = soon(doe2);
  win0.location.replace(url1);
}

function doe2() {
  // Add some iframes/docshells. Session history should still work.
  var ifr1 = document.createElement("iframe");
  document.body.insertBefore(ifr1, document.body.firstChild);
  ifr1.onload = soon(doe3);

  var ifr2 = document.createElement("iframe");
  document.body.insertBefore(ifr2, document.body.firstChild);
  ifr2.onload = soon(doe3);

  var ifr3 = document.createElement("iframe");
  document.body.insertBefore(ifr3, document.body.firstChild);
  ifr3.onload = soon(doe3);
}

var doe3_count = 0;
function doe3() {
  // Wait until all three iframes have loaded about:blank before navigating
  // win0.
  doe3_count++;
  if (doe3_count < 3) {
    return;
  }
  if (doe3_count > 3) {
    ok(false, 'Unexpected ' + doe3_count + 'th call to doe3.');
    return;
  }

  win0.frameElement.onload = soon(doe4);
  win0.location = 'data:text/html;charset=utf-8,2nd%20page';
}

function doe4() {
  win0.frameElement.onload = soon(doe5);
  history.go(-1);
}

function doe5() {
  opener.is(win0.location, url1, "History.go(-1) didn't work?");
  close();
}
</script>
</head>
<body onload="setTimeout(doe, 0);" onunload="opener.nextTest();">
</body></html>