<!DOCTYPE html>
<html>
<head>
    <script>
        var frames = 2;
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.dumpChildFramesAsText();
            testRunner.waitUntilDone();
        }

        function decrement() {
            --frames;
            if (!frames && window.testRunner)
                testRunner.notifyDone();
        }

        window.onmessage = decrement;
    </script>
</head>
<body>
    <p>Both of these frames should successfully open the database:</p>
    <iframe src="http://localhost:8000/security/resources/cross-origin-iframe-for-worker-indexeddb.html"></iframe>
    <iframe src="http://127.0.0.1:8000/security/resources/cross-origin-iframe-for-worker-indexeddb.html"></iframe>
</body>
</html>
