<html>
<head>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
    layoutTestController.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
