| <!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(undefined, {timeout:10000}); |
| var f = document.getElementById("test"); |
| var l = document.getElementById("step_log"); |
| var navigated = false; |
| |
| log = function(t) {l.textContent += ("\n" + t)} |
| |
| var steps = [ |
| function() {f.src = "browsing_context_name-1.html"}, |
| function() { |
| var navigated = true; |
| assert_equals(f.contentWindow.name, "test", "Initial load"); |
| setTimeout(next, 0); |
| }, |
| function() {f.src = "browsing_context_name-3.html"}, |
| function() { |
| var navigated = true; |
| assert_equals(f.contentWindow.name, "test3", "Initial load"); |
| 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"); |
| t.done(); |
| } |
| ].map(function(x) {return t.step_func(function() {log("Step " + step); x()})}); |
| |
| var step = 0; |
| next = t.step_func(function() {steps[step++]()}); |
| |
| f.onload=next; |
| |
| onload = setTimeout(next, 0); |
| </script> |