<html>
<head>
<script>

var secondWindowLog = "Logging from second window:<br>";

function log(a)
{
    secondWindowLog += a + "<br>";
}

function runTest()
{
    if (!window.sessionStorage) {
        log("window.sessionStorage DOES NOT exist");
        return;
    }
    
    log("Value for FOO is " + window.sessionStorage.getItem("FOO"));
    window.sessionStorage.setItem("FOO", "BAR-NEWWINDOW");
    log("Value for FOO after changing my own copy is " + window.sessionStorage.getItem("FOO"));
    
    log("Value for FOO in my opening window is " + window.opener.sessionStorage.getItem("FOO"));
    
    window.opener.log(secondWindowLog);
    
    if (window.testRunner)
        testRunner.notifyDone();
}

</script>
</head>
<body onload="runTest();">
This is a new window to make sure there is a copy of the previous window's sessionStorage, and that they diverge after a change<br>
</body>
</html>
