<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
</script>
</head>
<body>
<p>This test verifies that a sandboxed IFrame can close a top-level frame
with allow-top-navigation.</p>
<button onclick="start()">Start Test</button>
<script>
function start() {
    window.wnd = window.open("resources/sandboxed-iframe-close-top-does-not-close.html");
}

function done() {
    if (window.testRunner)
        testRunner.notifyDone();
}

// In LayoutTests mode we can start automagically.
start();
</script>
</body>
</html>
