https://github.com/web-platform-tests/wpt
Raw File
Tip revision: eb73cd1561ab74868ba71e128a237dafeecd36fa authored by Marcos Cáceres on 21 March 2018, 02:45:39 UTC
Edge doesn't do object spread yet
Tip revision: eb73cd1
navigate.iFrame.sub.html
<!DOCTYPE html>
<html>
<head>
    <title>W3C Beacon As Fetch (Fetch KeepAlive) Navigate Test</title>
</head>
<body>
    <script src="beacon-common.sub.js"></script>
    <script>
        "use strict";

        // An array should be passed through postMessage to this iFrame, where
        //     [0] contains a test case id as defined in beacon-common.js.
        //     [1] is the URL for the keep alive fetch() or sendBeacon().
        //     [2] string indicating the function to call - "fetch" to call fetch() or "beacon" to call sendBeacon().
        // The testcase id is returned back to the window through postMesage.
        var tests = 0;
        window.onmessage = function(e) {
            var testCaseId = e.data[0];
            var url = e.data[1];
            var func = e.data[2];
            tests++;

            // Reconstruct enough of the test case to send the keep alive fetch (data and url).
            var testCase = testLookup[testCaseId];
            testCase.url = url;

            if (func === "beacon") {
                // sendData calls sendBeacon
                sendData(testCase);
            }
            else {
                throw new Error(func + " is an invalid function");
            }

            // Let the main page continue the test if we don't immediately throw an exception.
            parent.postMessage(testCaseId, "*");

            // Now navigate ourselves.
            if (tests == sampleTests.length) {
                window.location = "http://{{host}}:{{ports[http][0]}}/";
            }
        }
    </script>
</body>
</html>
back to top