<html>
<head>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
    layoutTestController.dumpChildFramesAsText()
}
function test()
{
    var frame = document.createElement('iframe');
    frame.setAttribute('src', 'http://localhost:8000/security/resources/no-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 reset if domain security check fails 


