<html>
<head>
    <style>
        iframe { width: 400px; height: 200px;}
    </style>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        function loaded()
        {
            document.getElementsByTagName('h4')[0].innerHTML = document.domain;
        }
    </script>
</head>
<body onload="loaded();">
    <p>This tests that documents can navigate the location of any of it's
       parent-frames regardless of domain, if a user gesture is present.</p>
    <h4>DOMAIN</h4>
    <iframe id="i" src="http://localhost:8000/security/frameNavigation/resources/iframe-that-performs-parent-navigation-async.html"></iframe>
</body>
</html>
