+2017-08-04 Chris Dumez <cdumez@apple.com>
+
+ Add test coverage for sendBeacon() keepalive flag
+ https://bugs.webkit.org/show_bug.cgi?id=175212
+
+ Reviewed by Youenn Fablet.
+
+ * http/wpt/beacon/keepalive-after-navigation-expected.txt: Added.
+ * http/wpt/beacon/keepalive-after-navigation.html: Added.
+ * http/wpt/beacon/support/sendBeacon-onunload-iframe.html: Added.
+
2017-08-04 Chris Dumez <cdumez@apple.com>
[Beacon] Update sendBeacon to use the CachedResourceLoader
--- /dev/null
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>SendBeacon keepalive flag</title>
+ <script src=/resources/testharness.js></script>
+ <script src=/resources/testharnessreport.js></script>
+ </head>
+ <body>
+ <script src="/common/utils.js"></script>
+ <script src="/common/get-host-info.sub.js"></script>
+ <script>
+const RESOURCES_DIR = "/beacon/resources/";
+
+function pollResult(test, id) {
+ var checkUrl = RESOURCES_DIR + "content-type.py?cmd=get&id=" + id;
+
+ return new Promise(resolve => {
+ step_timeout(test.step_func(() => {
+ fetch(checkUrl).then(response => {
+ response.text().then(body => {
+ resolve(body);
+ });
+ });
+ }), 50);
+ });
+}
+
+onload = function() {
+ promise_test(function(test) {
+ let testFrame = document.getElementById("testFrame");
+ let id = testFrame.contentWindow.id;
+ testFrame.remove();
+
+ return pollResult(test, id).then(result => {
+ assert_equals(result, "text/plain;charset=UTF-8", "Correct content-type header result");
+ });
+ }, "Test that beacon sent from unload event handler is properly received");
+}
+ </script>
+ <iframe id="testFrame" src="support/sendBeacon-onunload-iframe.html"></iframe>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html>
+<body onunload="unload()">
+<script src="/common/utils.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+
+<script>
+const RESOURCES_DIR = "/beacon/resources/";
+var id = self.token();
+
+function unload() {
+ var testUrl = RESOURCES_DIR + "content-type.py?cmd=put&id=" + id;
+ navigator.sendBeacon(testUrl, "test");
+}
+</script>
+</body>
+</html>