<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>localStorage replace test</title> <!-- This test checks that localStorage object doesn't leak in a window that changes its location. We do this by switching frame location inside of this window and then by changing location of a top level window. --> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> <script type="text/javascript"> var shell; var shellType; var failureRegExp = new RegExp("^FAILURE"); window.addEventListener("message", onMessageReceived, false); function onMessageReceived(event) { switch (event.data) { case "init_done": // This is frame with different origin in the same browsing context // as the first frame adding data to localStorage of the first origin. shell.location = "http://example.com:80/tests/dom/tests/mochitest/localstorage/frameReplace.html?check&" + shellType; break; case "check_done": // Clean the localStorage of the first origin. shell.location = "http://example.org:80/tests/dom/tests/mochitest/localstorage/frameReplace.html?clean&" + shellType; break; case "clean_done": switch (shellType) { case "frame": // We finished testing in a frame // proceed with test in a separate window shellType = "window"; shell = window.open("http://example.org:80/tests/dom/tests/mochitest/localstorage/frameReplace.html?init&" + shellType); break; case "window": shell.close(); window.setTimeout(function() {SimpleTest.finish();}, 0); break; } break; default: SimpleTest.ok(!event.data.match(failureRegExp), event.data); break; } } function startTest() { SpecialPowers.pushPrefEnv({"set": [["security.mixed_content.block_display_content", false], ["security.mixed_content.block_active_content", false]]}, test1); } function test1() { shellType = "frame"; shell = frame; shell.location = "http://example.org:80/tests/dom/tests/mochitest/localstorage/frameReplace.html?init&" + shellType; } SimpleTest.waitForExplicitFinish(); </script> </head> <body onload="startTest();"> <iframe src="" name="frame"></iframe> </body> </html>