<html>
<head>
    <script src="resources/cross-frame-access.js"></script>
</head>
<body>
<p>The child frame will get a function from the parent frame, set the document.domain property and then try to use the function. The function should still be able to access parent frame properties.</p>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

window.thisIsTopFrame = true;

window.testFunction = function()
{
    shouldBeTrue("canGet('window.location.href')");
    shouldBeTrue("window.thisIsTopFrame");
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<iframe src="resources/cross-frame-iframe-callback-explicit-domain-ALLOW.html" style=""></iframe>
<pre id="console"></pre>
</body>
</html>
