<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.dumpChildFramesAsText()
}
function test()
{
    var frame = document.createElement('iframe');
    frame.setAttribute('src', 'http://127.0.0.1:8000/security/resources/has-custom-property.html');
    document.body.appendChild(frame);
    var w = frame.contentWindow;
    w.myProp = 1;
}

</script>
<body onload='test()'>
Test that window properties set for initial document are kept if security check passes
