<!doctype html>
<title>Restoring window.name on cross-origin history traversal</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<pre id="step_log"></pre>
<iframe id="test"></iframe>
<script>
var t = async_test();
var f = document.getElementById("test");
var l = document.getElementById("step_log");

log = function(t) {l.textContent += ("\n" + t)}

var steps = [
  function() {f.src = "browsing_context_name-1.html"},
  function() {
                assert_equals(f.contentWindow.name, "test", "Initial load");
                setTimeout(next, 0);
              },
  function() {f.src = "browsing_context_name-3.html"},
  function() {
                assert_equals(f.contentWindow.name, "test3", "After navigation 1");
                setTimeout(next, 0);
              },
  function() {f.src = f.src.replace("http://", "http://www.").replace("browsing_context_name-3", "browsing_context_name-2");},
  function() {
               setTimeout(next, 0);
             },
  function() {history.go(-2); setTimeout(next, 500)},
  function() {
               assert_equals(f.contentWindow.name, "test3", "After navigation 2");
               t.done();
             }
].map(function(x) {return t.step_func(function() {log("Step " + step + " " + f.contentWindow.location); x()})});

var step = 0;
next = t.step_func(function() {steps[step++]()});

f.onload=next;

onload = function() { setTimeout(next, 0); };
</script>
