blob: f4c7846e522b553985cc0ad253e439bd6d315975 [file] [log] [blame]
<!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>