From fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 03:14:29 +0200 Subject: Merging upstream version 125.0.1. Signed-off-by: Daniel Baumann --- .../beacon/headers/header-origin-same-origin.html | 25 ++++++++++++++++++++++ .../tests/beacon/headers/header-referrer.js | 21 +++++++++++++++--- 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 testing/web-platform/tests/beacon/headers/header-origin-same-origin.html (limited to 'testing/web-platform/tests/beacon') diff --git a/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html b/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html new file mode 100644 index 0000000000..7c1bb2ce9a --- /dev/null +++ b/testing/web-platform/tests/beacon/headers/header-origin-same-origin.html @@ -0,0 +1,25 @@ + + + + + SendBeacon Origin Header Same Origin Policy + + + + + + + + + + + diff --git a/testing/web-platform/tests/beacon/headers/header-referrer.js b/testing/web-platform/tests/beacon/headers/header-referrer.js index ebd67df1d7..1e9d4f697d 100644 --- a/testing/web-platform/tests/beacon/headers/header-referrer.js +++ b/testing/web-platform/tests/beacon/headers/header-referrer.js @@ -18,17 +18,32 @@ function testReferrerHeader(testBase, expectedReferrer, mayBeBlockedAsMixedConte }, "Test referer header " + testBase); } +function testOriginHeader(testBase, expectedOrigin, addBody) { + var id = self.token(); + var testUrl = testBase + "inspect-header.py?header=origin&cmd=put&id=" + id; + + promise_test(function(test) { + const sentBeacon = navigator.sendBeacon(testUrl, addBody ? "data" : undefined); + assert_true(sentBeacon, "SendBeacon Succeeded"); + return pollResult(expectedOrigin, id, "origin") .then(result => { + assert_equals(result, expectedOrigin, "Correct origin header result"); + }); + }, "Test origin header " + testBase + (addBody ? " - with body" : " - without body")); +} + // SendBeacon is an asynchronous and non-blocking request to a web server. // We may have to create a poll loop to get result from server -function pollResult(expectedReferrer, id) { - var checkUrl = RESOURCES_DIR + "inspect-header.py?header=referer&cmd=get&id=" + id; +function pollResult(expectedReferrer, id, headerName) { + if (!headerName) + headerName = "referer"; + var checkUrl = RESOURCES_DIR + "inspect-header.py?header=" + headerName + "&cmd=get&id=" + id; return new Promise(resolve => { function checkResult() { fetch(checkUrl).then( function(response) { assert_equals(response.status, 200, "Inspect header response's status is 200"); - let result = response.headers.get("x-request-referer"); + let result = response.headers.get("x-request-" + headerName); if (result != undefined) { resolve(result); -- cgit v1.2.3