<html>
<head>
    <script src="../resources/cross-frame-access.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.setCanOpenWindows();
            testRunner.waitUntilDone();
        }
        function loaded() {
            var url = "data:text/html,<html>"
                + "<head>"
                +     "<scr" + "ipt>"
                +         "function test() {"
                +             "try {"
                +                 "opener.document.getElementById(\"accessMe\").innerHTML = \"FAIL: Access from a window opened with a data: URL was allowed!\";"
                +             "} catch (e) {"
                +             "}"
                +             "window.opener.postMessage('done', '*');"
                +         "}"
                +     "</scri" + "pt>"
                + "</head>"
                + "<body onload=\"test();\">"
                +     "<p>Opened Frame.</p>"
                + "</body>"
                + "</html>";

            window.addEventListener('message', function () {
                closeWindowAndNotifyDone(openedWindow);
            });
            var openedWindow = window.open(url);
        }
    </script>
</head>
<body onload="loaded();">
    <p>Opener Frame</p>
    <p id='accessMe'>PASS: Access from a window opened with a data: URL was denied.</p>
</body>
</html>
