<!DOCTYPE html>
<html>
<script type="text/javascript">
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}


function runTest() {
    var p = document.getElementById('plg');
    var iframe = document.getElementById('frame-id');
    p.remember(iframe.contentWindow);

    var someObject = {a: 1, b: 2};
    // Load another page in iframe, so plugin keeps reference to old frame's contentWindow.
    iframe.onload = function() {
        // This will trigger Release Object for previously remembered reference.
        p.remember(someObject);
        document.getElementById('result').innerHTML = 'SUCCESS';
        if (window.testRunner)
            testRunner.notifyDone();
    };
    iframe.src = 'resources/empty2.html';
}

</script>
<body>
<embed id="plg" type="application/x-webkit-test-netscape"></embed><P>
<iframe id="frame-id" src="resources/empty.html" onload='runTest()'></iframe>
<div>This tests that releasing a reference to a contentWindow that has already been navigated away works correctly and does not crash. If this test is successful, the word SUCCESS should be seen below.</div>
<div id="result">FAILED</div>
</body>
</html>

