<!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-blink-deprecated-test-plugin"></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>

