<!DOCTYPE html>
<html>
<head>
    <script src="/js-test-resources/js-test.js"></script>
    <script>
        description("Tests that a same-origin fetch in an iframe succeeds if the server blocks cross-origin loads with a 'From-Origin: same' response header.");
        jsTestIsAsync = true;
        testRunner.dumpChildFramesAsText();

        function receiveMessage(event) {
            if (event.origin === "http://127.0.0.1:8000") {
                if (event.data.indexOf("fetchSuccess") !== -1)
                    testPassed("127.0.0.1 fetch in 127.0.0.1 iframe succeeded.");
                else if (event.data.indexOf("fetchError") !== -1)
                    testFailed("127.0.0.1 fetch in 127.0.0.1 iframe blocked.");
                else
                    testFailed("Received an unrecognized message. " + event.data);
            } else {
                testFailed("Received a message from an unexpected origin: " + event.origin);
            }

            finishJSTest();
        }

        window.addEventListener("message", receiveMessage, false);
    </script>
</head>
<body>
<iframe src="http://127.0.0.1:8000/from-origin/resources/iframeIPAddressFetch.html"></iframe>
</body>
</html>
